annotate test/CodeGen/AMDGPU/clamp-omod-special-case.mir @ 121:803732b1fca8

LLVM 5.0
author kono
date Fri, 27 Oct 2017 17:07:41 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 # RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-fold-operands %s -o - | FileCheck -check-prefix=GCN %s
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3 # GCN-LABEL: name: v_max_self_clamp_not_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 # GCN-NEXT: %21:vgpr_32 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7 name: v_max_self_clamp_not_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
30 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
32 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
33 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
34 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
35 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
36 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
37 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
38 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
39 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
40 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
41 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
42 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
43
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
44 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
45 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
46 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
47 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
48 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
49 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
50 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
51 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
52 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
53 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
54 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
55 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
56 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
57 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
58 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
59 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
60 %21 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
61 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
62 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
63
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
64 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
65 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
66 # GCN-LABEL: name: v_clamp_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
67 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
68 # GCN: %21:vgpr_32 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 1, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
69 name: v_clamp_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
70 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
71 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
72 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
73 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
74 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
75 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
76 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
77 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
78 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
79 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
80 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
81 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
82 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
83 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
84 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
85 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
86 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
87 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
88 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
89 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
90 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
91 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
92 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
93 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
94 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
95 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
96 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
97 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
98 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
99 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
100 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
101 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
102 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
103 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
104 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
105
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
106 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
107 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
108 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
109 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
110 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
111 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
112 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
113 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
114 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
115 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
116 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
117 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
118 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
119 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
120 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
121 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
122 %21 = V_MAX_F32_e64 0, killed %20, 0, killed %20, 1, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
123 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
124 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
125 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
126 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
127 # Don't fold a mul that looks like an omod if itself has omod set
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
128
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
129 # GCN-LABEL: name: v_omod_mul_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
130 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
131 # GCN-NEXT: %21:vgpr_32 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 0, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
132 name: v_omod_mul_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
133 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
134 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
135 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
136 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
137 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
138 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
139 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
140 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
141 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
142 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
143 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
144 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
145 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
146 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
147 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
148 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
149 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
150 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
151 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
152 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
153 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
154 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
155 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
156 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
157 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
158 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
159 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
160 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
161 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
162 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
163 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
164 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
165 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
166 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
167 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
168
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
169 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
170 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
171 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
172 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
173 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
174 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
175 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
176 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
177 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
178 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
179 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
180 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
181 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
182 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
183 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
184 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
185 %21 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 0, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
186 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
187 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
188
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
189 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
190 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
191 # Don't fold a mul that looks like an omod if itself has clamp set
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
192 # This might be OK, but would require folding the clamp at the same time.
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
193 # GCN-LABEL: name: v_omod_mul_clamp_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
194 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
195 # GCN-NEXT: %21:vgpr_32 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 1, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
196
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
197 name: v_omod_mul_clamp_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
198 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
199 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
200 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
201 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
202 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
203 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
204 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
205 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
206 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
207 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
208 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
209 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
210 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
211 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
212 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
213 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
214 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
215 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
216 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
217 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
218 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
219 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
220 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
221 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
222 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
223 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
224 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
225 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
226 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
227 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
228 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
229 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
230 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
231 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
232 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
233
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
234 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
235 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
236 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
237 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
238 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
239 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
240 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
241 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
242 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
243 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
244 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
245 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
246 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
247 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
248 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
249 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
250 %21 = V_MUL_F32_e64 0, killed %20, 0, 1056964608, 1, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
251 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
252 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
253
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
254 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
255
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
256
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
257
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
258
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
259
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
260
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
261
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
262
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
263
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
264
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
265
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
266
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
267
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
268 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
269 # Don't fold a mul that looks like an omod if itself has omod set
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
270
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
271 # GCN-LABEL: name: v_omod_add_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
272 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
273 # GCN-NEXT: %21:vgpr_32 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 0, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
274 name: v_omod_add_omod_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
275 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
276 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
277 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
278 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
279 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
280 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
281 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
282 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
283 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
284 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
285 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
286 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
287 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
288 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
289 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
290 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
291 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
292 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
293 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
294 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
295 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
296 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
297 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
298 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
299 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
300 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
301 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
302 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
303 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
304 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
305 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
306 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
307 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
308 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
309 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
310
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
311 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
312 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
313 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
314 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
315 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
316 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
317 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
318 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
319 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
320 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
321 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
322 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
323 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
324 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
325 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
326 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
327 %21 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 0, 3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
328 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
329 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
330
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
331 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
332 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
333 # Don't fold a mul that looks like an omod if itself has clamp set
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
334 # This might be OK, but would require folding the clamp at the same time.
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
335 # GCN-LABEL: name: v_omod_add_clamp_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
336 # GCN: %20:vgpr_32 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
337 # GCN-NEXT: %21:vgpr_32 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 1, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
338
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
339 name: v_omod_add_clamp_already_set_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
340 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
341 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
342 - { id: 0, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
343 - { id: 1, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
344 - { id: 2, class: sgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
345 - { id: 3, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
346 - { id: 4, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
347 - { id: 5, class: sreg_64_xexec }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
348 - { id: 6, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
349 - { id: 7, class: sreg_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
350 - { id: 8, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
351 - { id: 9, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
352 - { id: 10, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
353 - { id: 11, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
354 - { id: 12, class: sgpr_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
355 - { id: 13, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
356 - { id: 14, class: sreg_32_xm0 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
357 - { id: 15, class: sreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
358 - { id: 16, class: sgpr_128 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
359 - { id: 17, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
360 - { id: 18, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
361 - { id: 19, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
362 - { id: 20, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
363 - { id: 21, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
364 - { id: 22, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
365 - { id: 23, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
366 - { id: 24, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
367 - { id: 25, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
368 - { id: 26, class: vreg_64 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
369 liveins:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
370 - { reg: '%sgpr0_sgpr1', virtual-reg: '%0' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
371 - { reg: '%vgpr0', virtual-reg: '%3' }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
372 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
373 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
374 liveins: %sgpr0_sgpr1, %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
375
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
376 %3 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
377 %0 = COPY %sgpr0_sgpr1
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
378 %4 = S_LOAD_DWORDX2_IMM %0, 9, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
379 %5 = S_LOAD_DWORDX2_IMM %0, 11, 0 :: (non-temporal dereferenceable invariant load 8 from `i64 addrspace(2)* undef`)
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
380 %24 = V_ASHRREV_I32_e32 31, %3, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
381 %25 = REG_SEQUENCE %3, 1, %24, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
382 %10 = S_MOV_B32 61440
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
383 %11 = S_MOV_B32 0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
384 %12 = REG_SEQUENCE killed %11, 1, killed %10, 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
385 %13 = REG_SEQUENCE killed %5, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
386 %14 = S_MOV_B32 2
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
387 %26 = V_LSHL_B64 killed %25, 2, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
388 %16 = REG_SEQUENCE killed %4, 17, %12, 18
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
389 %18 = COPY %26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
390 %17 = BUFFER_LOAD_DWORD_ADDR64 %26, killed %13, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
391 %20 = V_ADD_F32_e64 0, killed %17, 0, 1065353216, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
392 %21 = V_ADD_F32_e64 0, killed %20, 0, killed %20, 1, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
393 BUFFER_STORE_DWORD_ADDR64 killed %21, %26, killed %16, 0, 0, 0, 0, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
394 S_ENDPGM
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
395
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
396 ...
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
397 ---
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
398
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
399 # Pass used to crash with immediate second operand of max
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
400 name: v_max_reg_imm_f32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
401 tracksRegLiveness: true
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
402 registers:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
403 - { id: 0, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
404 - { id: 1, class: vgpr_32 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
405 body: |
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
406 bb.0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
407 liveins: %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
408
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
409 %0 = COPY %vgpr0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
410 %1 = V_MAX_F32_e64 0, killed %0, 0, 1056964608, 1, 0, implicit %exec
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
411
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
412 ...