2 # RUN: not llvm-mc -triple powerpc64-unknown-unknown < %s 2> %t
3 # RUN: FileCheck < %t %s
4 # RUN: not llvm-mc -triple powerpc64le-unknown-unknown < %s 2> %t
5 # RUN: FileCheck < %t %s
9 # CHECK: error: invalid operand for instruction
10 # CHECK-NEXT: add 32, 32, 32
13 # CHECK: error: invalid register name
14 # CHECK-NEXT: add %r32, %r32, %r32
17 # TLS register operands
19 # CHECK: error: invalid operand for instruction
20 # CHECK-NEXT: add 3, symbol@tls, 4
23 # CHECK: error: invalid operand for instruction
24 # CHECK-NEXT: subf 3, 4, symbol@tls
27 # Unsigned 1-bit immediate operands
29 # CHECK: error: invalid operand for instruction
30 # CHECK-NEXT: mtmsr 1, 2
33 # CHECK: error: invalid operand for instruction
34 # CHECK-NEXT: mtmsrd 1, 2
37 # CHECK: error: invalid operand for instruction
38 # CHECK-NEXT: mtfsf 1, 2, 2, 1
41 # CHECK: error: invalid operand for instruction
42 # CHECK-NEXT: mtfsf. 1, 2, 2, 1
45 # Unsigned 2-bit immediate operands
47 # CHECK: error: invalid operand for instruction
48 # CHECK-NEXT: darn 1, 4
51 # CHECK: error: invalid operand for instruction
55 # CHECK: error: invalid operand for instruction
59 # Unsigned 3-bit immediate operands
61 # CHECK: error: invalid operand for instruction
62 # CHECK-NEXT: dcbf 0, 1, 8
65 # Signed 16-bit immediate operands
67 # CHECK: error: invalid operand for instruction
68 # CHECK-NEXT: addi 1, 0, -32769
71 # CHECK: error: invalid operand for instruction
72 # CHECK-NEXT: addi 1, 0, 32768
75 # Unsigned 16-bit immediate operands
77 # CHECK: error: invalid operand for instruction
78 # CHECK-NEXT: ori 1, 2, -1
81 # CHECK: error: invalid operand for instruction
82 # CHECK-NEXT: ori 1, 2, 65536
85 # Signed 16-bit immediate operands (extended range for addis)
87 # CHECK: error: invalid operand for instruction
90 # CHECK: error: invalid operand for instruction
93 # D-Form memory operands
95 # CHECK: error: invalid register number
96 # CHECK-NEXT: lwz 1, 0(32)
99 # CHECK: error: invalid register name
100 # CHECK-NEXT: lwz 1, 0(%r32)
103 # CHECK: error: invalid operand for instruction
104 # CHECK-NEXT: lwz 1, -32769(2)
107 # CHECK: error: invalid operand for instruction
108 # CHECK-NEXT: lwz 1, 32768(2)
111 # CHECK: error: invalid register number
112 # CHECK-NEXT: ld 1, 0(32)
115 # CHECK: error: invalid register name
116 # CHECK-NEXT: ld 1, 0(%r32)
119 # CHECK: error: invalid operand for instruction
120 # CHECK-NEXT: ld 1, 1(2)
123 # CHECK: error: invalid operand for instruction
124 # CHECK-NEXT: ld 1, 2(2)
127 # CHECK: error: invalid operand for instruction
128 # CHECK-NEXT: ld 1, 3(2)
131 # CHECK: error: invalid operand for instruction
132 # CHECK-NEXT: ld 1, -32772(2)
135 # CHECK: error: invalid operand for instruction
136 # CHECK-NEXT: ld 1, 32768(2)
139 # CHECK: error: invalid modifier 'got' (no symbols present)
141 # CHECK-NEXT: addi 4, 3, 123@got
143 # CHECK: error: invalid operand for instruction
144 # CHECK-NEXT: lwarx 1, 2, 3, a