136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: not llvm-mc %s -triple=mips-unknown-linux 2>%t0 | FileCheck %s
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# RUN: FileCheck -check-prefix=ERROR %s < %t0
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Check that using the assembler temporary when .set noat is in effect is an error.
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# We start with the assembler temporary enabled
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LABEL: test1:
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  lui   $1, 1
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  addu  $1, $1, $2
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  lw    $2, 0($1)
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinestest1:
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        lw      $2, 65536($2)
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinestest2:
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .set noat
15cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines        lw      $2, 65536($2) # ERROR: mips-noat.s:[[@LINE]]:9: error: Pseudo instruction requires $at, which is not available
16cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# Can we switch it back on successfully?
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK-LABEL: test3:
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  lui   $1, 1
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  addu  $1, $1, $2
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# CHECK:  lw    $2, 0($1)
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinestest3:
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .set at
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        lw      $2, 65536($2)
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinestest4:
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .set at=$0
29cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines        lw      $2, 65536($2) # ERROR: mips-noat.s:[[@LINE]]:9: error: Pseudo instruction requires $at, which is not available
30