xref: /aosp_15_r20/external/llvm/test/CodeGen/NVPTX/envreg.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg0()
5*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg1()
6*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg2()
7*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg3()
8*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg4()
9*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg5()
10*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg6()
11*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg7()
12*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg8()
13*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg9()
14*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg10()
15*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg11()
16*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg12()
17*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg13()
18*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg14()
19*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg15()
20*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg16()
21*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg17()
22*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg18()
23*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg19()
24*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg20()
25*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg21()
26*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg22()
27*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg23()
28*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg24()
29*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg25()
30*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg26()
31*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg27()
32*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg28()
33*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg29()
34*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg30()
35*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg31()
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Worker; CHECK: foo
39*9880d681SAndroid Build Coastguard Workerdefine i32 @foo() {
40*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg0
41*9880d681SAndroid Build Coastguard Worker  %val0 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg0()
42*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg1
43*9880d681SAndroid Build Coastguard Worker  %val1 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg1()
44*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg2
45*9880d681SAndroid Build Coastguard Worker  %val2 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg2()
46*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg3
47*9880d681SAndroid Build Coastguard Worker  %val3 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg3()
48*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg4
49*9880d681SAndroid Build Coastguard Worker  %val4 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg4()
50*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg5
51*9880d681SAndroid Build Coastguard Worker  %val5 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg5()
52*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg6
53*9880d681SAndroid Build Coastguard Worker  %val6 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg6()
54*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg7
55*9880d681SAndroid Build Coastguard Worker  %val7 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg7()
56*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg8
57*9880d681SAndroid Build Coastguard Worker  %val8 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg8()
58*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg9
59*9880d681SAndroid Build Coastguard Worker  %val9 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg9()
60*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg10
61*9880d681SAndroid Build Coastguard Worker  %val10 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg10()
62*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg11
63*9880d681SAndroid Build Coastguard Worker  %val11 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg11()
64*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg12
65*9880d681SAndroid Build Coastguard Worker  %val12 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg12()
66*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg13
67*9880d681SAndroid Build Coastguard Worker  %val13 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg13()
68*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg14
69*9880d681SAndroid Build Coastguard Worker  %val14 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg14()
70*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg15
71*9880d681SAndroid Build Coastguard Worker  %val15 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg15()
72*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg16
73*9880d681SAndroid Build Coastguard Worker  %val16 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg16()
74*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg17
75*9880d681SAndroid Build Coastguard Worker  %val17 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg17()
76*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg18
77*9880d681SAndroid Build Coastguard Worker  %val18 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg18()
78*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg19
79*9880d681SAndroid Build Coastguard Worker  %val19 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg19()
80*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg20
81*9880d681SAndroid Build Coastguard Worker  %val20 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg20()
82*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg21
83*9880d681SAndroid Build Coastguard Worker  %val21 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg21()
84*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg22
85*9880d681SAndroid Build Coastguard Worker  %val22 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg22()
86*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg23
87*9880d681SAndroid Build Coastguard Worker  %val23 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg23()
88*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg24
89*9880d681SAndroid Build Coastguard Worker  %val24 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg24()
90*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg25
91*9880d681SAndroid Build Coastguard Worker  %val25 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg25()
92*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg26
93*9880d681SAndroid Build Coastguard Worker  %val26 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg26()
94*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg27
95*9880d681SAndroid Build Coastguard Worker  %val27 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg27()
96*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg28
97*9880d681SAndroid Build Coastguard Worker  %val28 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg28()
98*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg29
99*9880d681SAndroid Build Coastguard Worker  %val29 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg29()
100*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg30
101*9880d681SAndroid Build Coastguard Worker  %val30 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg30()
102*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg31
103*9880d681SAndroid Build Coastguard Worker  %val31 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg31()
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Worker  %ret0 = add i32 %val0, %val1
107*9880d681SAndroid Build Coastguard Worker  %ret1 = add i32 %ret0, %val2
108*9880d681SAndroid Build Coastguard Worker  %ret2 = add i32 %ret1, %val3
109*9880d681SAndroid Build Coastguard Worker  %ret3 = add i32 %ret2, %val4
110*9880d681SAndroid Build Coastguard Worker  %ret4 = add i32 %ret3, %val5
111*9880d681SAndroid Build Coastguard Worker  %ret5 = add i32 %ret4, %val6
112*9880d681SAndroid Build Coastguard Worker  %ret6 = add i32 %ret5, %val7
113*9880d681SAndroid Build Coastguard Worker  %ret7 = add i32 %ret6, %val8
114*9880d681SAndroid Build Coastguard Worker  %ret8 = add i32 %ret7, %val9
115*9880d681SAndroid Build Coastguard Worker  %ret9 = add i32 %ret8, %val10
116*9880d681SAndroid Build Coastguard Worker  %ret10 = add i32 %ret9, %val11
117*9880d681SAndroid Build Coastguard Worker  %ret11 = add i32 %ret10, %val12
118*9880d681SAndroid Build Coastguard Worker  %ret12 = add i32 %ret11, %val13
119*9880d681SAndroid Build Coastguard Worker  %ret13 = add i32 %ret12, %val14
120*9880d681SAndroid Build Coastguard Worker  %ret14 = add i32 %ret13, %val15
121*9880d681SAndroid Build Coastguard Worker  %ret15 = add i32 %ret14, %val16
122*9880d681SAndroid Build Coastguard Worker  %ret16 = add i32 %ret15, %val17
123*9880d681SAndroid Build Coastguard Worker  %ret17 = add i32 %ret16, %val18
124*9880d681SAndroid Build Coastguard Worker  %ret18 = add i32 %ret17, %val19
125*9880d681SAndroid Build Coastguard Worker  %ret19 = add i32 %ret18, %val20
126*9880d681SAndroid Build Coastguard Worker  %ret20 = add i32 %ret19, %val21
127*9880d681SAndroid Build Coastguard Worker  %ret21 = add i32 %ret20, %val22
128*9880d681SAndroid Build Coastguard Worker  %ret22 = add i32 %ret21, %val23
129*9880d681SAndroid Build Coastguard Worker  %ret23 = add i32 %ret22, %val24
130*9880d681SAndroid Build Coastguard Worker  %ret24 = add i32 %ret23, %val25
131*9880d681SAndroid Build Coastguard Worker  %ret25 = add i32 %ret24, %val26
132*9880d681SAndroid Build Coastguard Worker  %ret26 = add i32 %ret25, %val27
133*9880d681SAndroid Build Coastguard Worker  %ret27 = add i32 %ret26, %val28
134*9880d681SAndroid Build Coastguard Worker  %ret28 = add i32 %ret27, %val29
135*9880d681SAndroid Build Coastguard Worker  %ret29 = add i32 %ret28, %val30
136*9880d681SAndroid Build Coastguard Worker  %ret30 = add i32 %ret29, %val31
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Worker  ret i32 %ret30
139*9880d681SAndroid Build Coastguard Worker}
140