annotate llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.mir @ 206:f17a3b42b08b

Added tag before-12 for changeset b7591485f4cd
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 07 Jun 2021 21:25:57 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 # RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 # GFX9-LABEL: name: diffoporder_add
anatofuz
parents:
diff changeset
4 # GFX9: %{{[0-9]+}}:vreg_64 = GLOBAL_LOAD_DWORDX2 %{{[0-9]+}}, -2048, 0, 0
anatofuz
parents:
diff changeset
5 # GFX9: %{{[0-9]+}}:vreg_64 = GLOBAL_LOAD_DWORDX2 %{{[0-9]+}}, 0, 0, 0
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 name: diffoporder_add
anatofuz
parents:
diff changeset
8 body: |
anatofuz
parents:
diff changeset
9 bb.0.entry:
anatofuz
parents:
diff changeset
10 %0:sgpr_64 = COPY $sgpr0_sgpr1
anatofuz
parents:
diff changeset
11 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
anatofuz
parents:
diff changeset
12 %3:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
anatofuz
parents:
diff changeset
13 %4:sreg_32_xm0 = COPY $sgpr101
anatofuz
parents:
diff changeset
14 %5:sreg_32_xm0 = S_MOV_B32 0
anatofuz
parents:
diff changeset
15 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %3
anatofuz
parents:
diff changeset
16 $sgpr4 = COPY %4
anatofuz
parents:
diff changeset
17 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
18 %6:vreg_64 = COPY $vgpr0_vgpr1
anatofuz
parents:
diff changeset
19 %7:vgpr_32 = V_AND_B32_e32 255, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
20 %8:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
21 %9:vreg_64 = REG_SEQUENCE killed %7, %subreg.sub0, %8, %subreg.sub1
anatofuz
parents:
diff changeset
22 %10:vgpr_32 = V_LSHLREV_B32_e64 7, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
23 %11:vgpr_32 = V_AND_B32_e32 -32768, killed %10, implicit $exec
anatofuz
parents:
diff changeset
24 %12:sgpr_32 = COPY %1.sub1
anatofuz
parents:
diff changeset
25 %13:vgpr_32 = COPY %5
anatofuz
parents:
diff changeset
26 %14:vgpr_32, %15:sreg_64_xexec = V_ADD_I32_e64 %1.sub0, %11, 0, implicit $exec
anatofuz
parents:
diff changeset
27 %16:vgpr_32 = COPY %12
anatofuz
parents:
diff changeset
28 %17:vgpr_32, dead %18:sreg_64_xexec = V_ADDC_U32_e64 %16, %13, killed %15, 0, implicit $exec
anatofuz
parents:
diff changeset
29 %19:vreg_64 = REG_SEQUENCE %14, %subreg.sub0, %17, %subreg.sub1
anatofuz
parents:
diff changeset
30 %20:vreg_64 = V_LSHLREV_B64 3, %9, implicit $exec
anatofuz
parents:
diff changeset
31 %21:vgpr_32, %22:sreg_64_xexec = V_ADD_I32_e64 %14, %20.sub0, 0, implicit $exec
anatofuz
parents:
diff changeset
32 %23:vgpr_32, dead %24:sreg_64_xexec = V_ADDC_U32_e64 %17, %20.sub1, killed %22, 0, implicit $exec
anatofuz
parents:
diff changeset
33 %25:sgpr_32 = S_MOV_B32 4096
anatofuz
parents:
diff changeset
34 %26:vgpr_32, %27:sreg_64_xexec = V_ADD_I32_e64 %25, %21, 0, implicit $exec
anatofuz
parents:
diff changeset
35 %28:vgpr_32, dead %29:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %27, 0, implicit $exec
anatofuz
parents:
diff changeset
36 %30:vreg_64 = REG_SEQUENCE %26, %subreg.sub0, %28, %subreg.sub1
anatofuz
parents:
diff changeset
37 %31:vreg_64 = GLOBAL_LOAD_DWORDX2 %30, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
38 %32:sgpr_32 = S_MOV_B32 6144
anatofuz
parents:
diff changeset
39 %33:vgpr_32, %34:sreg_64_xexec = V_ADD_I32_e64 %21, %32, 0, implicit $exec
anatofuz
parents:
diff changeset
40 %35:vgpr_32, dead %36:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %34, 0, implicit $exec
anatofuz
parents:
diff changeset
41 %37:vreg_64 = REG_SEQUENCE %33, %subreg.sub0, %35, %subreg.sub1
anatofuz
parents:
diff changeset
42 %38:vreg_64 = GLOBAL_LOAD_DWORDX2 %37, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
43 ...
anatofuz
parents:
diff changeset
44 ---
anatofuz
parents:
diff changeset
45
anatofuz
parents:
diff changeset
46 # GFX9-LABEL: name: LowestInMiddle
anatofuz
parents:
diff changeset
47 # GFX9: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 11200
anatofuz
parents:
diff changeset
48 # GFX9: [[BASE_LO:%[0-9]+]]:vgpr_32, [[V_ADD_I32_e64_5:%[0-9]+]]:sreg_64_xexec = V_ADD_I32_e64 %{{[0-9]+}}, [[S_MOV_B32_1]]
anatofuz
parents:
diff changeset
49 # GFX9: [[BASE_HI:%[0-9]+]]:vgpr_32, dead %{{[0-9]+}}:sreg_64_xexec = V_ADDC_U32_e64 %{{[0-9]+}}, 0, killed [[V_ADD_I32_e64_5]]
anatofuz
parents:
diff changeset
50 # GFX9: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[BASE_LO]], %subreg.sub0, [[BASE_HI]], %subreg.sub1
anatofuz
parents:
diff changeset
51 # GFX9: [[GLOBAL_LOAD_DWORDX2_:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE2]], -3200, 0, 0
anatofuz
parents:
diff changeset
52 #
anatofuz
parents:
diff changeset
53 # GFX9: [[S_MOV_B32_2:%[0-9]+]]:sgpr_32 = S_MOV_B32 6400
anatofuz
parents:
diff changeset
54 # GFX9: [[BASE1_LO:%[0-9]+]]:vgpr_32, [[V_ADD_I32_e64_7:%[0-9]+]]:sreg_64_xexec = V_ADD_I32_e64 %{{[0-9]+}}, [[S_MOV_B32_2]]
anatofuz
parents:
diff changeset
55 # GFX9: [[BASE1_HI:%[0-9]+]]:vgpr_32, dead %{{[0-9]+}}:sreg_64_xexec = V_ADDC_U32_e64 %{{[0-9]+}}, 0, killed [[V_ADD_I32_e64_7]]
anatofuz
parents:
diff changeset
56 # GFX9: [[REG_SEQUENCE3:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[BASE1_LO]], %subreg.sub0, [[BASE1_HI]], %subreg.sub1
anatofuz
parents:
diff changeset
57 # GFX9: [[GLOBAL_LOAD_DWORDX2_1:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE3]], 0, 0, 0,
anatofuz
parents:
diff changeset
58 # GFX9: [[GLOBAL_LOAD_DWORDX2_2:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE2]], 0, 0, 0,
anatofuz
parents:
diff changeset
59
anatofuz
parents:
diff changeset
60 name: LowestInMiddle
anatofuz
parents:
diff changeset
61 body: |
anatofuz
parents:
diff changeset
62 bb.0.entry:
anatofuz
parents:
diff changeset
63 %0:sgpr_64 = COPY $sgpr0_sgpr1
anatofuz
parents:
diff changeset
64 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
anatofuz
parents:
diff changeset
65 %3:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
anatofuz
parents:
diff changeset
66 %4:sreg_32_xm0 = COPY $sgpr101
anatofuz
parents:
diff changeset
67 %5:sreg_32_xm0 = S_MOV_B32 0
anatofuz
parents:
diff changeset
68 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %3
anatofuz
parents:
diff changeset
69 $sgpr4 = COPY %4
anatofuz
parents:
diff changeset
70 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
71 %6:vreg_64 = COPY $vgpr0_vgpr1
anatofuz
parents:
diff changeset
72 %7:vgpr_32 = V_AND_B32_e32 255, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
73 %8:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
74 %9:vreg_64 = REG_SEQUENCE killed %7, %subreg.sub0, %8, %subreg.sub1
anatofuz
parents:
diff changeset
75 %10:vgpr_32 = V_LSHLREV_B32_e64 7, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
76 %11:vgpr_32 = V_AND_B32_e32 -32768, killed %10, implicit $exec
anatofuz
parents:
diff changeset
77 %12:sgpr_32 = COPY %1.sub1
anatofuz
parents:
diff changeset
78 %13:vgpr_32 = COPY %5
anatofuz
parents:
diff changeset
79 %14:vgpr_32, %15:sreg_64_xexec = V_ADD_I32_e64 %1.sub0, %11, 0, implicit $exec
anatofuz
parents:
diff changeset
80 %16:vgpr_32 = COPY %12
anatofuz
parents:
diff changeset
81 %17:vgpr_32, dead %18:sreg_64_xexec = V_ADDC_U32_e64 %16, %13, killed %15, 0, implicit $exec
anatofuz
parents:
diff changeset
82 %19:vreg_64 = REG_SEQUENCE %14, %subreg.sub0, %17, %subreg.sub1
anatofuz
parents:
diff changeset
83 %20:vreg_64 = V_LSHLREV_B64 3, %9, implicit $exec
anatofuz
parents:
diff changeset
84 %21:vgpr_32, %22:sreg_64_xexec = V_ADD_I32_e64 %14, %20.sub0, 0, implicit $exec
anatofuz
parents:
diff changeset
85 %23:vgpr_32, dead %24:sreg_64_xexec = V_ADDC_U32_e64 %17, %20.sub1, killed %22, 0, implicit $exec
anatofuz
parents:
diff changeset
86 %25:sgpr_32 = S_MOV_B32 8000
anatofuz
parents:
diff changeset
87 %26:vgpr_32, %27:sreg_64_xexec = V_ADD_I32_e64 %21, %25, 0, implicit $exec
anatofuz
parents:
diff changeset
88 %28:vgpr_32, dead %29:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %27, 0, implicit $exec
anatofuz
parents:
diff changeset
89 %30:vreg_64 = REG_SEQUENCE %26, %subreg.sub0, %28, %subreg.sub1
anatofuz
parents:
diff changeset
90 %31:vreg_64 = GLOBAL_LOAD_DWORDX2 %30, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
91 %32:sgpr_32 = S_MOV_B32 6400
anatofuz
parents:
diff changeset
92 %33:vgpr_32, %34:sreg_64_xexec = V_ADD_I32_e64 %21, %32, 0, implicit $exec
anatofuz
parents:
diff changeset
93 %35:vgpr_32, dead %36:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %34, 0, implicit $exec
anatofuz
parents:
diff changeset
94 %37:vreg_64 = REG_SEQUENCE %33, %subreg.sub0, %35, %subreg.sub1
anatofuz
parents:
diff changeset
95 %38:vreg_64 = GLOBAL_LOAD_DWORDX2 %37, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
96 %39:sgpr_32 = S_MOV_B32 11200
anatofuz
parents:
diff changeset
97 %40:vgpr_32, %41:sreg_64_xexec = V_ADD_I32_e64 %21, %39, 0, implicit $exec
anatofuz
parents:
diff changeset
98 %42:vgpr_32, dead %43:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %41, 0, implicit $exec
anatofuz
parents:
diff changeset
99 %44:vreg_64 = REG_SEQUENCE %40, %subreg.sub0, %42, %subreg.sub1
anatofuz
parents:
diff changeset
100 %45:vreg_64 = GLOBAL_LOAD_DWORDX2 %44, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
101 ...
anatofuz
parents:
diff changeset
102 ---
anatofuz
parents:
diff changeset
103
anatofuz
parents:
diff changeset
104 # GFX9-LABEL: name: NegativeDistance
anatofuz
parents:
diff changeset
105 # GFX9: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 10240
anatofuz
parents:
diff changeset
106 # GFX9: [[V_ADD_I32_e64_4:%[0-9]+]]:vgpr_32, [[V_ADD_I32_e64_5:%[0-9]+]]:sreg_64_xexec = V_ADD_I32_e64 %{{[0-9]+}}, [[S_MOV_B32_1]]
anatofuz
parents:
diff changeset
107 # GFX9: [[BASE_HI:%[0-9]+]]:vgpr_32, dead %{{[0-9]+}}:sreg_64_xexec = V_ADDC_U32_e64 %{{[0-9]+}}, 0, killed [[V_ADD_I32_e64_5]]
anatofuz
parents:
diff changeset
108 # GFX9: [[REG_SEQUENCE2:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[V_ADD_I32_e64_4]], %subreg.sub0, [[BASE_HI]], %subreg.sub1
anatofuz
parents:
diff changeset
109 # GFX9: [[GLOBAL_LOAD_DWORDX2_:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE2]], -4096, 0, 0
anatofuz
parents:
diff changeset
110 # GFX9: [[GLOBAL_LOAD_DWORDX2_1:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE2]], -2048, 0, 0
anatofuz
parents:
diff changeset
111 # GFX9: [[GLOBAL_LOAD_DWORDX2_2:%[0-9]+]]:vreg_64 = GLOBAL_LOAD_DWORDX2 [[REG_SEQUENCE2]], 0, 0, 0
anatofuz
parents:
diff changeset
112
anatofuz
parents:
diff changeset
113 name: NegativeDistance
anatofuz
parents:
diff changeset
114 body: |
anatofuz
parents:
diff changeset
115 bb.0.entry:
anatofuz
parents:
diff changeset
116 %0:sgpr_64 = COPY $sgpr0_sgpr1
anatofuz
parents:
diff changeset
117 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
anatofuz
parents:
diff changeset
118 %3:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
anatofuz
parents:
diff changeset
119 %4:sreg_32_xm0 = COPY $sgpr101
anatofuz
parents:
diff changeset
120 %5:sreg_32_xm0 = S_MOV_B32 0
anatofuz
parents:
diff changeset
121 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %3
anatofuz
parents:
diff changeset
122 $sgpr4 = COPY %4
anatofuz
parents:
diff changeset
123 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
124 %6:vreg_64 = COPY $vgpr0_vgpr1
anatofuz
parents:
diff changeset
125 %7:vgpr_32 = V_AND_B32_e32 255, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
126 %8:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
127 %9:vreg_64 = REG_SEQUENCE killed %7, %subreg.sub0, %8, %subreg.sub1
anatofuz
parents:
diff changeset
128 %10:vgpr_32 = V_LSHLREV_B32_e64 7, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
129 %11:vgpr_32 = V_AND_B32_e32 -32768, killed %10, implicit $exec
anatofuz
parents:
diff changeset
130 %12:sgpr_32 = COPY %1.sub1
anatofuz
parents:
diff changeset
131 %13:vgpr_32 = COPY %5
anatofuz
parents:
diff changeset
132 %14:vgpr_32, %15:sreg_64_xexec = V_ADD_I32_e64 %1.sub0, %11, 0, implicit $exec
anatofuz
parents:
diff changeset
133 %16:vgpr_32 = COPY %12
anatofuz
parents:
diff changeset
134 %17:vgpr_32, dead %18:sreg_64_xexec = V_ADDC_U32_e64 %16, %13, killed %15, 0, implicit $exec
anatofuz
parents:
diff changeset
135 %19:vreg_64 = REG_SEQUENCE %14, %subreg.sub0, %17, %subreg.sub1
anatofuz
parents:
diff changeset
136 %20:vreg_64 = V_LSHLREV_B64 3, %9, implicit $exec
anatofuz
parents:
diff changeset
137 %21:vgpr_32, %22:sreg_64_xexec = V_ADD_I32_e64 %14, %20.sub0, 0, implicit $exec
anatofuz
parents:
diff changeset
138 %23:vgpr_32, dead %24:sreg_64_xexec = V_ADDC_U32_e64 %17, %20.sub1, killed %22, 0, implicit $exec
anatofuz
parents:
diff changeset
139 %25:sgpr_32 = S_MOV_B32 6144
anatofuz
parents:
diff changeset
140 %26:vgpr_32, %27:sreg_64_xexec = V_ADD_I32_e64 %21, %25, 0, implicit $exec
anatofuz
parents:
diff changeset
141 %28:vgpr_32, dead %29:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %27, 0, implicit $exec
anatofuz
parents:
diff changeset
142 %30:vreg_64 = REG_SEQUENCE %26, %subreg.sub0, %28, %subreg.sub1
anatofuz
parents:
diff changeset
143 %31:vreg_64 = GLOBAL_LOAD_DWORDX2 %30, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
144 %32:sgpr_32 = S_MOV_B32 8192
anatofuz
parents:
diff changeset
145 %33:vgpr_32, %34:sreg_64_xexec = V_ADD_I32_e64 %21, %32, 0, implicit $exec
anatofuz
parents:
diff changeset
146 %35:vgpr_32, dead %36:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %34, 0, implicit $exec
anatofuz
parents:
diff changeset
147 %37:vreg_64 = REG_SEQUENCE %33, %subreg.sub0, %35, %subreg.sub1
anatofuz
parents:
diff changeset
148 %38:vreg_64 = GLOBAL_LOAD_DWORDX2 %37, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
149 %39:sgpr_32 = S_MOV_B32 10240
anatofuz
parents:
diff changeset
150 %40:vgpr_32, %41:sreg_64_xexec = V_ADD_I32_e64 %21, %39, 0, implicit $exec
anatofuz
parents:
diff changeset
151 %42:vgpr_32, dead %43:sreg_64_xexec = V_ADDC_U32_e64 %23, 0, killed %41, 0, implicit $exec
anatofuz
parents:
diff changeset
152 %44:vreg_64 = REG_SEQUENCE %40, %subreg.sub0, %42, %subreg.sub1
anatofuz
parents:
diff changeset
153 %45:vreg_64 = GLOBAL_LOAD_DWORDX2 %44, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
154 ...
anatofuz
parents:
diff changeset
155 ---
anatofuz
parents:
diff changeset
156
anatofuz
parents:
diff changeset
157 # Tests for a successful compilation.
anatofuz
parents:
diff changeset
158 name: assert_hit
anatofuz
parents:
diff changeset
159 body: |
anatofuz
parents:
diff changeset
160 bb.0.entry:
anatofuz
parents:
diff changeset
161 %0:sgpr_64 = COPY $sgpr0_sgpr1
anatofuz
parents:
diff changeset
162 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0, 0
anatofuz
parents:
diff changeset
163 %3:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99
anatofuz
parents:
diff changeset
164 %4:sreg_32_xm0 = COPY $sgpr101
anatofuz
parents:
diff changeset
165 %5:sreg_32_xm0 = S_MOV_B32 0
anatofuz
parents:
diff changeset
166 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %3
anatofuz
parents:
diff changeset
167 $sgpr4 = COPY %4
anatofuz
parents:
diff changeset
168 $vgpr0 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
169 %6:vreg_64 = COPY $vgpr0_vgpr1
anatofuz
parents:
diff changeset
170 %7:vgpr_32 = V_AND_B32_e32 255, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
171 %8:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
anatofuz
parents:
diff changeset
172 %9:vreg_64 = REG_SEQUENCE killed %7, %subreg.sub0, %8, %subreg.sub1
anatofuz
parents:
diff changeset
173 %10:vgpr_32 = V_LSHLREV_B32_e64 7, %6.sub0, implicit $exec
anatofuz
parents:
diff changeset
174 %11:vgpr_32 = V_AND_B32_e32 -32768, killed %10, implicit $exec
anatofuz
parents:
diff changeset
175 %12:sgpr_32 = COPY %1.sub1
anatofuz
parents:
diff changeset
176 %13:vgpr_32 = COPY %5
anatofuz
parents:
diff changeset
177 %14:vgpr_32, %15:sreg_64_xexec = V_ADD_I32_e64 %1.sub0, %11, 0, implicit $exec
anatofuz
parents:
diff changeset
178 %16:vgpr_32 = COPY %12
anatofuz
parents:
diff changeset
179 %17:vgpr_32, dead %18:sreg_64_xexec = V_ADDC_U32_e64 %16, %13, killed %15, 0, implicit $exec
anatofuz
parents:
diff changeset
180 %19:vreg_64 = REG_SEQUENCE %14, %subreg.sub0, %17, %subreg.sub1
anatofuz
parents:
diff changeset
181 %20:vreg_64 = V_LSHLREV_B64 3, %9, implicit $exec
anatofuz
parents:
diff changeset
182 %21:vgpr_32, %22:sreg_64_xexec = V_ADD_I32_e64 %14, %20.sub0, 0, implicit $exec
anatofuz
parents:
diff changeset
183 %23:vgpr_32, dead %24:sreg_64_xexec = V_ADDC_U32_e64 %17, %20.sub1, killed %22, 0, implicit $exec
anatofuz
parents:
diff changeset
184
anatofuz
parents:
diff changeset
185 %25:sgpr_32 = S_MOV_B32 6144
anatofuz
parents:
diff changeset
186 %26:vgpr_32, %27:sreg_64_xexec = V_ADD_I32_e64 %21, %25, 0, implicit $exec
anatofuz
parents:
diff changeset
187 %28:vgpr_32, dead %29:sreg_64_xexec = V_ADDC_U32_e64 %23, 4294967295, killed %27, 0, implicit $exec
anatofuz
parents:
diff changeset
188 %30:vreg_64 = REG_SEQUENCE %26, %subreg.sub0, %28, %subreg.sub1
anatofuz
parents:
diff changeset
189 %31:vreg_64 = GLOBAL_LOAD_DWORDX2 %30, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
190 ...
anatofuz
parents:
diff changeset
191 ---
anatofuz
parents:
diff changeset
192
anatofuz
parents:
diff changeset
193 # GFX9-LABEL: name: diffoporder_add_store
anatofuz
parents:
diff changeset
194 # GFX9: GLOBAL_STORE_DWORD %{{[0-9]+}}, %0.sub0, 1000, 0, 0, 0
anatofuz
parents:
diff changeset
195 # GFX9: GLOBAL_STORE_DWORD %{{[0-9]+}}, %0.sub1, 0, 0, 0, 0
anatofuz
parents:
diff changeset
196
anatofuz
parents:
diff changeset
197 name: diffoporder_add_store
anatofuz
parents:
diff changeset
198 body: |
anatofuz
parents:
diff changeset
199 bb.0.entry:
anatofuz
parents:
diff changeset
200
anatofuz
parents:
diff changeset
201 %0:vreg_64 = COPY $vgpr0_vgpr1
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 %1:sgpr_32 = S_MOV_B32 4000
anatofuz
parents:
diff changeset
204 %2:vgpr_32, %3:sreg_64_xexec = V_ADD_I32_e64 %0.sub0, %1, 0, implicit $exec
anatofuz
parents:
diff changeset
205 %4:vgpr_32, dead %5:sreg_64_xexec = V_ADDC_U32_e64 %0.sub1, 0, %3, 0, implicit $exec
anatofuz
parents:
diff changeset
206 %6:vreg_64 = REG_SEQUENCE %2, %subreg.sub0, %4, %subreg.sub1
anatofuz
parents:
diff changeset
207 GLOBAL_STORE_DWORD %6, %0.sub0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
208
anatofuz
parents:
diff changeset
209 %8:sgpr_32 = S_MOV_B32 3000
anatofuz
parents:
diff changeset
210 %9:vgpr_32, %10:sreg_64_xexec = V_ADD_I32_e64 %0.sub0, %8, 0, implicit $exec
anatofuz
parents:
diff changeset
211 %11:vgpr_32, dead %12:sreg_64_xexec = V_ADDC_U32_e64 %0.sub1, 0, %10, 0, implicit $exec
anatofuz
parents:
diff changeset
212 %13:vreg_64 = REG_SEQUENCE %9, %subreg.sub0, %11, %subreg.sub1
anatofuz
parents:
diff changeset
213 GLOBAL_STORE_DWORD %13, %0.sub1, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
214 ...