1
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
6
7# Register operands
8
9# CHECK: error: invalid operand for instruction
10# CHECK-NEXT: add 32, 32, 32
11              add 32, 32, 32
12
13# CHECK: error: invalid register name
14# CHECK-NEXT: add %r32, %r32, %r32
15              add %r32, %r32, %r32
16
17# TLS register operands
18
19# CHECK: error: invalid operand for instruction
20# CHECK-NEXT: add 3, symbol@tls, 4
21              add 3, symbol@tls, 4
22
23# CHECK: error: invalid operand for instruction
24# CHECK-NEXT: subf 3, 4, symbol@tls
25              subf 3, 4, symbol@tls
26
27# Signed 16-bit immediate operands
28
29# CHECK: error: invalid operand for instruction
30# CHECK-NEXT: addi 1, 0, -32769
31              addi 1, 0, -32769
32
33# CHECK: error: invalid operand for instruction
34# CHECK-NEXT: addi 1, 0, 32768
35              addi 1, 0, 32768
36
37# Unsigned 16-bit immediate operands
38
39# CHECK: error: invalid operand for instruction
40# CHECK-NEXT: ori 1, 2, -1
41              ori 1, 2, -1
42
43# CHECK: error: invalid operand for instruction
44# CHECK-NEXT: ori 1, 2, 65536
45              ori 1, 2, 65536
46
47# Signed 16-bit immediate operands (extended range for addis)
48
49# CHECK: error: invalid operand for instruction
50         addis 1, 0, -65537
51
52# CHECK: error: invalid operand for instruction
53         addis 1, 0, 65536
54
55# D-Form memory operands
56
57# CHECK: error: invalid register number
58# CHECK-NEXT: lwz 1, 0(32)
59              lwz 1, 0(32)
60
61# CHECK: error: invalid register name
62# CHECK-NEXT: lwz 1, 0(%r32)
63              lwz 1, 0(%r32)
64
65# CHECK: error: invalid operand for instruction
66# CHECK-NEXT: lwz 1, -32769(2)
67              lwz 1, -32769(2)
68
69# CHECK: error: invalid operand for instruction
70# CHECK-NEXT: lwz 1, 32768(2)
71              lwz 1, 32768(2)
72
73# CHECK: error: invalid register number
74# CHECK-NEXT: ld 1, 0(32)
75              ld 1, 0(32)
76
77# CHECK: error: invalid register name
78# CHECK-NEXT: ld 1, 0(%r32)
79              ld 1, 0(%r32)
80
81# CHECK: error: invalid operand for instruction
82# CHECK-NEXT: ld 1, 1(2)
83              ld 1, 1(2)
84
85# CHECK: error: invalid operand for instruction
86# CHECK-NEXT: ld 1, 2(2)
87              ld 1, 2(2)
88
89# CHECK: error: invalid operand for instruction
90# CHECK-NEXT: ld 1, 3(2)
91              ld 1, 3(2)
92
93# CHECK: error: invalid operand for instruction
94# CHECK-NEXT: ld 1, -32772(2)
95              ld 1, -32772(2)
96
97# CHECK: error: invalid operand for instruction
98# CHECK-NEXT: ld 1, 32768(2)
99              ld 1, 32768(2)
100
101# CHECK: error: invalid modifier 'got' (no symbols present)
102         addi 4, 3, 123@got
103# CHECK-NEXT: addi 4, 3, 123@got
104