@@ -2019,9 +2019,7 @@ define float @v_fneg_minimumnum_f32_no_ieee(float %a, float %b) #4 {
20192019; GCN-LABEL: v_fneg_minimumnum_f32_no_ieee:
20202020; GCN: ; %bb.0:
20212021; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2022- ; GCN-NEXT: v_mul_f32_e32 v1, -1.0, v1
2023- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2024- ; GCN-NEXT: v_max_f32_e32 v0, v0, v1
2022+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, -v1
20252023; GCN-NEXT: s_setpc_b64 s[30:31]
20262024 %min = call float @llvm.minimumnum.f32 (float %a , float %b )
20272025 %fneg = fneg float %min
@@ -2044,8 +2042,7 @@ define float @v_fneg_self_minimumnum_f32_no_ieee(float %a) #4 {
20442042; GCN-LABEL: v_fneg_self_minimumnum_f32_no_ieee:
20452043; GCN: ; %bb.0:
20462044; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2047- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2048- ; GCN-NEXT: v_max_f32_e32 v0, v0, v0
2045+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, -v0
20492046; GCN-NEXT: s_setpc_b64 s[30:31]
20502047 %min = call float @llvm.minimumnum.f32 (float %a , float %a )
20512048 %min.fneg = fneg float %min
@@ -2068,8 +2065,7 @@ define float @v_fneg_posk_minimumnum_f32_no_ieee(float %a) #4 {
20682065; GCN-LABEL: v_fneg_posk_minimumnum_f32_no_ieee:
20692066; GCN: ; %bb.0:
20702067; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2071- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2072- ; GCN-NEXT: v_max_f32_e32 v0, -4.0, v0
2068+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, -4.0
20732069; GCN-NEXT: s_setpc_b64 s[30:31]
20742070 %min = call float @llvm.minimumnum.f32 (float 4 .0 , float %a )
20752071 %fneg = fneg float %min
@@ -2092,8 +2088,7 @@ define float @v_fneg_negk_minimumnum_f32_no_ieee(float %a) #4 {
20922088; GCN-LABEL: v_fneg_negk_minimumnum_f32_no_ieee:
20932089; GCN: ; %bb.0:
20942090; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2095- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2096- ; GCN-NEXT: v_max_f32_e32 v0, 4.0, v0
2091+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, 4.0
20972092; GCN-NEXT: s_setpc_b64 s[30:31]
20982093 %min = call float @llvm.minimumnum.f32 (float -4 .0 , float %a )
20992094 %fneg = fneg float %min
@@ -2251,8 +2246,7 @@ define float @v_fneg_neg0_minimumnum_f32_no_ieee(float %a) #4 {
22512246; GCN-LABEL: v_fneg_neg0_minimumnum_f32_no_ieee:
22522247; GCN: ; %bb.0:
22532248; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2254- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2255- ; GCN-NEXT: v_max_f32_e32 v0, 0, v0
2249+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, 0
22562250; GCN-NEXT: s_setpc_b64 s[30:31]
22572251 %min = call float @llvm.minimumnum.f32 (float -0 .0 , float %a )
22582252 %fneg = fneg float %min
@@ -2299,7 +2293,6 @@ define float @v_fneg_0_minimumnum_foldable_use_f32_no_ieee(float %a, float %b) #
22992293; GCN-LABEL: v_fneg_0_minimumnum_foldable_use_f32_no_ieee:
23002294; GCN: ; %bb.0:
23012295; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2302- ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
23032296; GCN-NEXT: v_min_f32_e32 v0, 0, v0
23042297; GCN-NEXT: v_mul_f32_e64 v0, -v0, v1
23052298; GCN-NEXT: s_setpc_b64 s[30:31]
@@ -2330,9 +2323,7 @@ define <2 x float> @v_fneg_minimumnum_multi_use_minimumnum_f32_no_ieee(float %a,
23302323; GCN-LABEL: v_fneg_minimumnum_multi_use_minimumnum_f32_no_ieee:
23312324; GCN: ; %bb.0:
23322325; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2333- ; GCN-NEXT: v_mul_f32_e32 v1, -1.0, v1
2334- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2335- ; GCN-NEXT: v_max_f32_e32 v0, v0, v1
2326+ ; GCN-NEXT: v_max_f32_e64 v0, -v0, -v1
23362327; GCN-NEXT: v_mul_f32_e32 v1, -4.0, v0
23372328; GCN-NEXT: s_setpc_b64 s[30:31]
23382329 %min = call float @llvm.minimumnum.f32 (float %a , float %b )
@@ -2364,9 +2355,7 @@ define float @v_fneg_maximumnum_f32_no_ieee(float %a, float %b) #4 {
23642355; GCN-LABEL: v_fneg_maximumnum_f32_no_ieee:
23652356; GCN: ; %bb.0:
23662357; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2367- ; GCN-NEXT: v_mul_f32_e32 v1, -1.0, v1
2368- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2369- ; GCN-NEXT: v_min_f32_e32 v0, v0, v1
2358+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, -v1
23702359; GCN-NEXT: s_setpc_b64 s[30:31]
23712360 %max = call float @llvm.maximumnum.f32 (float %a , float %b )
23722361 %fneg = fneg float %max
@@ -2389,8 +2378,7 @@ define float @v_fneg_self_maximumnum_f32_no_ieee(float %a) #4 {
23892378; GCN-LABEL: v_fneg_self_maximumnum_f32_no_ieee:
23902379; GCN: ; %bb.0:
23912380; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2392- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2393- ; GCN-NEXT: v_min_f32_e32 v0, v0, v0
2381+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, -v0
23942382; GCN-NEXT: s_setpc_b64 s[30:31]
23952383 %max = call float @llvm.maximumnum.f32 (float %a , float %a )
23962384 %max.fneg = fneg float %max
@@ -2413,8 +2401,7 @@ define float @v_fneg_posk_maximumnum_f32_no_ieee(float %a) #4 {
24132401; GCN-LABEL: v_fneg_posk_maximumnum_f32_no_ieee:
24142402; GCN: ; %bb.0:
24152403; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2416- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2417- ; GCN-NEXT: v_min_f32_e32 v0, -4.0, v0
2404+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, -4.0
24182405; GCN-NEXT: s_setpc_b64 s[30:31]
24192406 %max = call float @llvm.maximumnum.f32 (float 4 .0 , float %a )
24202407 %fneg = fneg float %max
@@ -2437,8 +2424,7 @@ define float @v_fneg_negk_maximumnum_f32_no_ieee(float %a) #4 {
24372424; GCN-LABEL: v_fneg_negk_maximumnum_f32_no_ieee:
24382425; GCN: ; %bb.0:
24392426; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2440- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2441- ; GCN-NEXT: v_min_f32_e32 v0, 4.0, v0
2427+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, 4.0
24422428; GCN-NEXT: s_setpc_b64 s[30:31]
24432429 %max = call float @llvm.maximumnum.f32 (float -4 .0 , float %a )
24442430 %fneg = fneg float %max
@@ -2473,8 +2459,7 @@ define float @v_fneg_neg0_maximumnum_f32_no_ieee(float %a) #4 {
24732459; GCN-LABEL: v_fneg_neg0_maximumnum_f32_no_ieee:
24742460; GCN: ; %bb.0:
24752461; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2476- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2477- ; GCN-NEXT: v_min_f32_e32 v0, 0, v0
2462+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, 0
24782463; GCN-NEXT: s_setpc_b64 s[30:31]
24792464 %max = call float @llvm.maximumnum.f32 (float -0 .0 , float %a )
24802465 %fneg = fneg float %max
@@ -2499,7 +2484,6 @@ define float @v_fneg_0_maximumnum_foldable_use_f32_no_ieee(float %a, float %b) #
24992484; GCN-LABEL: v_fneg_0_maximumnum_foldable_use_f32_no_ieee:
25002485; GCN: ; %bb.0:
25012486; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2502- ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
25032487; GCN-NEXT: v_max_f32_e32 v0, 0, v0
25042488; GCN-NEXT: v_mul_f32_e64 v0, -v0, v1
25052489; GCN-NEXT: s_setpc_b64 s[30:31]
@@ -2530,9 +2514,7 @@ define <2 x float> @v_fneg_maximumnum_multi_use_maximumnum_f32_no_ieee(float %a,
25302514; GCN-LABEL: v_fneg_maximumnum_multi_use_maximumnum_f32_no_ieee:
25312515; GCN: ; %bb.0:
25322516; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2533- ; GCN-NEXT: v_mul_f32_e32 v1, -1.0, v1
2534- ; GCN-NEXT: v_mul_f32_e32 v0, -1.0, v0
2535- ; GCN-NEXT: v_min_f32_e32 v0, v0, v1
2517+ ; GCN-NEXT: v_min_f32_e64 v0, -v0, -v1
25362518; GCN-NEXT: v_mul_f32_e32 v1, -4.0, v0
25372519; GCN-NEXT: s_setpc_b64 s[30:31]
25382520 %max = call float @llvm.maximumnum.f32 (float %a , float %b )
0 commit comments