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