xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/inlineasm_constraint.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -no-integrated-as -march=mipsel < %s | \
2*9880d681SAndroid Build Coastguard Worker; RUN:     FileCheck %s -check-prefixes=ALL,GAS
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefixes=ALL,IAS
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine void @constraint_I() nounwind {
6*9880d681SAndroid Build Coastguard Worker; First I with short
7*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: constraint_I:
8*9880d681SAndroid Build Coastguard Worker; ALL:           #APP
9*9880d681SAndroid Build Coastguard Worker; ALL:           addiu ${{[0-9]+}}, ${{[0-9]+}}, 4096
10*9880d681SAndroid Build Coastguard Worker; ALL:           #NO_APP
11*9880d681SAndroid Build Coastguard Worker  tail call i16 asm sideeffect "addiu $0, $1, $2", "=r,r,I"(i16 7, i16 4096) nounwind
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; Then I with int
14*9880d681SAndroid Build Coastguard Worker; ALL: #APP
15*9880d681SAndroid Build Coastguard Worker; ALL: addiu ${{[0-9]+}}, ${{[0-9]+}}, -3
16*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
17*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "addiu $0, $1, $2", "=r,r,I"(i32 7, i32 -3) nounwind
18*9880d681SAndroid Build Coastguard Worker  ret void
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine void @constraint_J() nounwind {
22*9880d681SAndroid Build Coastguard Worker; Now J with 0
23*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: constraint_J:
24*9880d681SAndroid Build Coastguard Worker; ALL: #APP
25*9880d681SAndroid Build Coastguard Worker; ALL: addiu ${{[0-9]+}}, ${{[0-9]+}}, 0
26*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
27*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "addiu $0, $1, $2\0A\09 ", "=r,r,J"(i32 7, i16 0) nounwind
28*9880d681SAndroid Build Coastguard Worker  ret void
29*9880d681SAndroid Build Coastguard Worker}
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerdefine void @constraint_K() nounwind {
32*9880d681SAndroid Build Coastguard Worker; Now K with 64
33*9880d681SAndroid Build Coastguard Worker; ALL: #APP
34*9880d681SAndroid Build Coastguard Worker; GAS: addu ${{[0-9]+}}, ${{[0-9]+}}, 64
35*9880d681SAndroid Build Coastguard Worker; IAS: addiu ${{[0-9]+}}, ${{[0-9]+}}, 64
36*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
37*9880d681SAndroid Build Coastguard Worker  tail call i16 asm sideeffect "addu $0, $1, $2\0A\09 ", "=r,r,K"(i16 7, i16 64) nounwind
38*9880d681SAndroid Build Coastguard Worker  ret void
39*9880d681SAndroid Build Coastguard Worker}
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerdefine void @constraint_L() nounwind {
42*9880d681SAndroid Build Coastguard Worker; Now L with 0x00100000
43*9880d681SAndroid Build Coastguard Worker; ALL: #APP
44*9880d681SAndroid Build Coastguard Worker; ALL: add ${{[0-9]+}}, ${{[0-9]+}}, ${{[0-9]+}}
45*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
46*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "add $0, $1, $3\0A\09", "=r,r,L,r"(i32 7, i32 1048576, i32 0) nounwind
47*9880d681SAndroid Build Coastguard Worker  ret void
48*9880d681SAndroid Build Coastguard Worker}
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerdefine void @constraint_N() nounwind {
51*9880d681SAndroid Build Coastguard Worker; Now N with -3
52*9880d681SAndroid Build Coastguard Worker; ALL: #APP
53*9880d681SAndroid Build Coastguard Worker; ALL: addiu ${{[0-9]+}}, ${{[0-9]+}}, -3
54*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
55*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "addiu $0, $1, $2", "=r,r,N"(i32 7, i32 -3) nounwind
56*9880d681SAndroid Build Coastguard Worker  ret void
57*9880d681SAndroid Build Coastguard Worker}
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerdefine void @constraint_O() nounwind {
60*9880d681SAndroid Build Coastguard Worker; Now O with -3
61*9880d681SAndroid Build Coastguard Worker; ALL: #APP
62*9880d681SAndroid Build Coastguard Worker; ALL: addiu ${{[0-9]+}}, ${{[0-9]+}}, -3
63*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
64*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "addiu $0, $1, $2", "=r,r,O"(i32 7, i16 -3) nounwind
65*9880d681SAndroid Build Coastguard Worker  ret void
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdefine void @constraint_P() nounwind {
69*9880d681SAndroid Build Coastguard Worker; Now P with 65535
70*9880d681SAndroid Build Coastguard Worker; ALL: #APP
71*9880d681SAndroid Build Coastguard Worker; GAS: addiu ${{[0-9]+}}, ${{[0-9]+}}, 65535
72*9880d681SAndroid Build Coastguard Worker; ALL: #NO_APP
73*9880d681SAndroid Build Coastguard Worker  tail call i32 asm sideeffect "addiu $0, $1, $2", "=r,r,P"(i32 7, i32 65535) nounwind
74*9880d681SAndroid Build Coastguard Worker  ret void
75*9880d681SAndroid Build Coastguard Worker}
76