@@ -126,21 +126,21 @@ define <2 x half> @v_pow_v2f16(<2 x half> %x, <2 x half> %y) {
126
126
; GFX8-LABEL: v_pow_v2f16:
127
127
; GFX8: ; %bb.0:
128
128
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
129
- ; GFX8-NEXT: v_log_f16_sdwa v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
130
- ; GFX8-NEXT: v_log_f16_e32 v0, v0
131
- ; GFX8-NEXT: v_cvt_f32_f16_sdwa v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
132
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v1, v1
129
+ ; GFX8-NEXT: v_log_f16_e32 v2, v0
130
+ ; GFX8-NEXT: v_log_f16_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
131
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v3, v1
132
+ ; GFX8-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
133
133
; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
134
134
; GFX8-NEXT: v_cvt_f32_f16_e32 v0, v0
135
135
; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
136
136
; GFX8-NEXT: v_mul_legacy_f32_e32 v0, v0, v1
137
- ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
138
137
; GFX8-NEXT: v_cvt_f16_f32_e32 v0, v0
138
+ ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
139
139
; GFX8-NEXT: v_mov_b32_e32 v2, 16
140
- ; GFX8-NEXT: v_exp_f16_e32 v1, v1
141
140
; GFX8-NEXT: v_exp_f16_e32 v0, v0
142
- ; GFX8-NEXT: v_lshlrev_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
143
- ; GFX8-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
141
+ ; GFX8-NEXT: v_exp_f16_e32 v1, v1
142
+ ; GFX8-NEXT: v_lshlrev_b32_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
143
+ ; GFX8-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
144
144
; GFX8-NEXT: s_setpc_b64 s[30:31]
145
145
;
146
146
; GFX9-LABEL: v_pow_v2f16:
@@ -154,11 +154,11 @@ define <2 x half> @v_pow_v2f16(<2 x half> %x, <2 x half> %y) {
154
154
; GFX9-NEXT: v_cvt_f32_f16_e32 v0, v0
155
155
; GFX9-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
156
156
; GFX9-NEXT: v_mul_legacy_f32_e32 v0, v0, v1
157
- ; GFX9-NEXT: v_cvt_f16_f32_e32 v1, v2
158
157
; GFX9-NEXT: v_cvt_f16_f32_e32 v0, v0
159
- ; GFX9-NEXT: v_mov_b32_e32 v2, 0xffff
160
- ; GFX9-NEXT: v_exp_f16_e32 v1, v1
158
+ ; GFX9-NEXT: v_cvt_f16_f32_e32 v2, v2
161
159
; GFX9-NEXT: v_exp_f16_sdwa v0, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
160
+ ; GFX9-NEXT: v_exp_f16_e32 v1, v2
161
+ ; GFX9-NEXT: v_mov_b32_e32 v2, 0xffff
162
162
; GFX9-NEXT: v_and_or_b32 v0, v1, v2, v0
163
163
; GFX9-NEXT: s_setpc_b64 s[30:31]
164
164
%pow = call <2 x half > @llvm.pow.v2f16 (<2 x half > %x , <2 x half > %y )
@@ -173,40 +173,40 @@ define <2 x half> @v_pow_v2f16_fneg_lhs(<2 x half> %x, <2 x half> %y) {
173
173
; GFX6-NEXT: v_and_b32_e32 v0, 0xffff, v0
174
174
; GFX6-NEXT: v_or_b32_e32 v0, v1, v0
175
175
; GFX6-NEXT: v_xor_b32_e32 v0, 0x80008000, v0
176
- ; GFX6-NEXT: v_lshrrev_b32_e32 v1, 16, v0
176
+ ; GFX6-NEXT: v_cvt_f32_f16_e32 v1, v0
177
+ ; GFX6-NEXT: v_lshrrev_b32_e32 v0, 16, v0
177
178
; GFX6-NEXT: v_cvt_f32_f16_e32 v0, v0
178
- ; GFX6-NEXT: v_cvt_f32_f16_e32 v1, v1
179
179
; GFX6-NEXT: v_cvt_f32_f16_e32 v2, v2
180
+ ; GFX6-NEXT: v_log_f32_e32 v1, v1
180
181
; GFX6-NEXT: v_cvt_f32_f16_e32 v3, v3
181
182
; GFX6-NEXT: v_log_f32_e32 v0, v0
182
- ; GFX6-NEXT: v_log_f32_e32 v1, v1
183
- ; GFX6-NEXT: v_mul_legacy_f32_e32 v0, v0, v2
184
- ; GFX6-NEXT: v_mul_legacy_f32_e32 v1, v1, v3
185
- ; GFX6-NEXT: v_exp_f32_e32 v0, v0
183
+ ; GFX6-NEXT: v_mul_legacy_f32_e32 v1, v1, v2
186
184
; GFX6-NEXT: v_exp_f32_e32 v1, v1
187
- ; GFX6-NEXT: v_cvt_f16_f32_e32 v0, v0
188
- ; GFX6-NEXT: v_cvt_f16_f32_e32 v1, v1
185
+ ; GFX6-NEXT: v_mul_legacy_f32_e32 v0, v0, v3
186
+ ; GFX6-NEXT: v_exp_f32_e32 v2, v0
187
+ ; GFX6-NEXT: v_cvt_f16_f32_e32 v0, v1
188
+ ; GFX6-NEXT: v_cvt_f16_f32_e32 v1, v2
189
189
; GFX6-NEXT: s_setpc_b64 s[30:31]
190
190
;
191
191
; GFX8-LABEL: v_pow_v2f16_fneg_lhs:
192
192
; GFX8: ; %bb.0:
193
193
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
194
194
; GFX8-NEXT: v_xor_b32_e32 v0, 0x80008000, v0
195
- ; GFX8-NEXT: v_log_f16_sdwa v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
196
- ; GFX8-NEXT: v_log_f16_e32 v0, v0
197
- ; GFX8-NEXT: v_cvt_f32_f16_sdwa v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
198
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v1, v1
195
+ ; GFX8-NEXT: v_log_f16_e32 v2, v0
196
+ ; GFX8-NEXT: v_log_f16_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
197
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v3, v1
198
+ ; GFX8-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
199
199
; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
200
200
; GFX8-NEXT: v_cvt_f32_f16_e32 v0, v0
201
201
; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
202
202
; GFX8-NEXT: v_mul_legacy_f32_e32 v0, v0, v1
203
- ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
204
203
; GFX8-NEXT: v_cvt_f16_f32_e32 v0, v0
204
+ ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
205
205
; GFX8-NEXT: v_mov_b32_e32 v2, 16
206
- ; GFX8-NEXT: v_exp_f16_e32 v1, v1
207
206
; GFX8-NEXT: v_exp_f16_e32 v0, v0
208
- ; GFX8-NEXT: v_lshlrev_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
209
- ; GFX8-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
207
+ ; GFX8-NEXT: v_exp_f16_e32 v1, v1
208
+ ; GFX8-NEXT: v_lshlrev_b32_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
209
+ ; GFX8-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
210
210
; GFX8-NEXT: s_setpc_b64 s[30:31]
211
211
;
212
212
; GFX9-LABEL: v_pow_v2f16_fneg_lhs:
@@ -259,22 +259,22 @@ define <2 x half> @v_pow_v2f16_fneg_rhs(<2 x half> %x, <2 x half> %y) {
259
259
; GFX8-LABEL: v_pow_v2f16_fneg_rhs:
260
260
; GFX8: ; %bb.0:
261
261
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
262
- ; GFX8-NEXT: v_log_f16_sdwa v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
263
- ; GFX8-NEXT: v_log_f16_e32 v0, v0
262
+ ; GFX8-NEXT: v_log_f16_e32 v2, v0
263
+ ; GFX8-NEXT: v_log_f16_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
264
264
; GFX8-NEXT: v_xor_b32_e32 v1, 0x80008000, v1
265
- ; GFX8-NEXT: v_cvt_f32_f16_sdwa v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
266
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
265
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v3, v1
266
+ ; GFX8-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
267
267
; GFX8-NEXT: v_cvt_f32_f16_e32 v0, v0
268
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v1, v1
269
- ; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
270
- ; GFX8-NEXT: v_cvt_f16_f32_e32 v2, v2
268
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
271
269
; GFX8-NEXT: v_mul_legacy_f32_e32 v0, v0, v1
272
270
; GFX8-NEXT: v_cvt_f16_f32_e32 v0, v0
273
- ; GFX8-NEXT: v_exp_f16_e32 v1, v2
271
+ ; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
272
+ ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
274
273
; GFX8-NEXT: v_mov_b32_e32 v2, 16
275
274
; GFX8-NEXT: v_exp_f16_e32 v0, v0
276
- ; GFX8-NEXT: v_lshlrev_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
277
- ; GFX8-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
275
+ ; GFX8-NEXT: v_exp_f16_e32 v1, v1
276
+ ; GFX8-NEXT: v_lshlrev_b32_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
277
+ ; GFX8-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
278
278
; GFX8-NEXT: s_setpc_b64 s[30:31]
279
279
;
280
280
; GFX9-LABEL: v_pow_v2f16_fneg_rhs:
@@ -336,22 +336,22 @@ define <2 x half> @v_pow_v2f16_fneg_lhs_rhs(<2 x half> %x, <2 x half> %y) {
336
336
; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
337
337
; GFX8-NEXT: s_mov_b32 s4, 0x80008000
338
338
; GFX8-NEXT: v_xor_b32_e32 v0, s4, v0
339
- ; GFX8-NEXT: v_log_f16_sdwa v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
340
- ; GFX8-NEXT: v_log_f16_e32 v0, v0
339
+ ; GFX8-NEXT: v_log_f16_e32 v2, v0
340
+ ; GFX8-NEXT: v_log_f16_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
341
341
; GFX8-NEXT: v_xor_b32_e32 v1, s4, v1
342
- ; GFX8-NEXT: v_cvt_f32_f16_sdwa v3, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
343
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
342
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v3, v1
343
+ ; GFX8-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
344
344
; GFX8-NEXT: v_cvt_f32_f16_e32 v0, v0
345
- ; GFX8-NEXT: v_cvt_f32_f16_e32 v1, v1
346
- ; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
347
- ; GFX8-NEXT: v_cvt_f16_f32_e32 v2, v2
345
+ ; GFX8-NEXT: v_cvt_f32_f16_e32 v2, v2
348
346
; GFX8-NEXT: v_mul_legacy_f32_e32 v0, v0, v1
349
347
; GFX8-NEXT: v_cvt_f16_f32_e32 v0, v0
350
- ; GFX8-NEXT: v_exp_f16_e32 v1, v2
348
+ ; GFX8-NEXT: v_mul_legacy_f32_e32 v2, v2, v3
349
+ ; GFX8-NEXT: v_cvt_f16_f32_e32 v1, v2
351
350
; GFX8-NEXT: v_mov_b32_e32 v2, 16
352
351
; GFX8-NEXT: v_exp_f16_e32 v0, v0
353
- ; GFX8-NEXT: v_lshlrev_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
354
- ; GFX8-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
352
+ ; GFX8-NEXT: v_exp_f16_e32 v1, v1
353
+ ; GFX8-NEXT: v_lshlrev_b32_sdwa v0, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_0
354
+ ; GFX8-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
355
355
; GFX8-NEXT: s_setpc_b64 s[30:31]
356
356
;
357
357
; GFX9-LABEL: v_pow_v2f16_fneg_lhs_rhs:
0 commit comments