@@ -2019,9 +2019,7 @@ define float @v_fneg_minimumnum_f32_no_ieee(float %a, float %b) #4 {
2019
2019
; GCN-LABEL: v_fneg_minimumnum_f32_no_ieee:
2020
2020
; GCN: ; %bb.0:
2021
2021
; 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
2025
2023
; GCN-NEXT: s_setpc_b64 s[30:31]
2026
2024
%min = call float @llvm.minimumnum.f32 (float %a , float %b )
2027
2025
%fneg = fneg float %min
@@ -2044,8 +2042,7 @@ define float @v_fneg_self_minimumnum_f32_no_ieee(float %a) #4 {
2044
2042
; GCN-LABEL: v_fneg_self_minimumnum_f32_no_ieee:
2045
2043
; GCN: ; %bb.0:
2046
2044
; 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
2049
2046
; GCN-NEXT: s_setpc_b64 s[30:31]
2050
2047
%min = call float @llvm.minimumnum.f32 (float %a , float %a )
2051
2048
%min.fneg = fneg float %min
@@ -2068,8 +2065,7 @@ define float @v_fneg_posk_minimumnum_f32_no_ieee(float %a) #4 {
2068
2065
; GCN-LABEL: v_fneg_posk_minimumnum_f32_no_ieee:
2069
2066
; GCN: ; %bb.0:
2070
2067
; 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
2073
2069
; GCN-NEXT: s_setpc_b64 s[30:31]
2074
2070
%min = call float @llvm.minimumnum.f32 (float 4 .0 , float %a )
2075
2071
%fneg = fneg float %min
@@ -2092,8 +2088,7 @@ define float @v_fneg_negk_minimumnum_f32_no_ieee(float %a) #4 {
2092
2088
; GCN-LABEL: v_fneg_negk_minimumnum_f32_no_ieee:
2093
2089
; GCN: ; %bb.0:
2094
2090
; 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
2097
2092
; GCN-NEXT: s_setpc_b64 s[30:31]
2098
2093
%min = call float @llvm.minimumnum.f32 (float -4 .0 , float %a )
2099
2094
%fneg = fneg float %min
@@ -2251,8 +2246,7 @@ define float @v_fneg_neg0_minimumnum_f32_no_ieee(float %a) #4 {
2251
2246
; GCN-LABEL: v_fneg_neg0_minimumnum_f32_no_ieee:
2252
2247
; GCN: ; %bb.0:
2253
2248
; 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
2256
2250
; GCN-NEXT: s_setpc_b64 s[30:31]
2257
2251
%min = call float @llvm.minimumnum.f32 (float -0 .0 , float %a )
2258
2252
%fneg = fneg float %min
@@ -2299,7 +2293,6 @@ define float @v_fneg_0_minimumnum_foldable_use_f32_no_ieee(float %a, float %b) #
2299
2293
; GCN-LABEL: v_fneg_0_minimumnum_foldable_use_f32_no_ieee:
2300
2294
; GCN: ; %bb.0:
2301
2295
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2302
- ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
2303
2296
; GCN-NEXT: v_min_f32_e32 v0, 0, v0
2304
2297
; GCN-NEXT: v_mul_f32_e64 v0, -v0, v1
2305
2298
; 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,
2330
2323
; GCN-LABEL: v_fneg_minimumnum_multi_use_minimumnum_f32_no_ieee:
2331
2324
; GCN: ; %bb.0:
2332
2325
; 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
2336
2327
; GCN-NEXT: v_mul_f32_e32 v1, -4.0, v0
2337
2328
; GCN-NEXT: s_setpc_b64 s[30:31]
2338
2329
%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 {
2364
2355
; GCN-LABEL: v_fneg_maximumnum_f32_no_ieee:
2365
2356
; GCN: ; %bb.0:
2366
2357
; 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
2370
2359
; GCN-NEXT: s_setpc_b64 s[30:31]
2371
2360
%max = call float @llvm.maximumnum.f32 (float %a , float %b )
2372
2361
%fneg = fneg float %max
@@ -2389,8 +2378,7 @@ define float @v_fneg_self_maximumnum_f32_no_ieee(float %a) #4 {
2389
2378
; GCN-LABEL: v_fneg_self_maximumnum_f32_no_ieee:
2390
2379
; GCN: ; %bb.0:
2391
2380
; 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
2394
2382
; GCN-NEXT: s_setpc_b64 s[30:31]
2395
2383
%max = call float @llvm.maximumnum.f32 (float %a , float %a )
2396
2384
%max.fneg = fneg float %max
@@ -2413,8 +2401,7 @@ define float @v_fneg_posk_maximumnum_f32_no_ieee(float %a) #4 {
2413
2401
; GCN-LABEL: v_fneg_posk_maximumnum_f32_no_ieee:
2414
2402
; GCN: ; %bb.0:
2415
2403
; 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
2418
2405
; GCN-NEXT: s_setpc_b64 s[30:31]
2419
2406
%max = call float @llvm.maximumnum.f32 (float 4 .0 , float %a )
2420
2407
%fneg = fneg float %max
@@ -2437,8 +2424,7 @@ define float @v_fneg_negk_maximumnum_f32_no_ieee(float %a) #4 {
2437
2424
; GCN-LABEL: v_fneg_negk_maximumnum_f32_no_ieee:
2438
2425
; GCN: ; %bb.0:
2439
2426
; 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
2442
2428
; GCN-NEXT: s_setpc_b64 s[30:31]
2443
2429
%max = call float @llvm.maximumnum.f32 (float -4 .0 , float %a )
2444
2430
%fneg = fneg float %max
@@ -2473,8 +2459,7 @@ define float @v_fneg_neg0_maximumnum_f32_no_ieee(float %a) #4 {
2473
2459
; GCN-LABEL: v_fneg_neg0_maximumnum_f32_no_ieee:
2474
2460
; GCN: ; %bb.0:
2475
2461
; 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
2478
2463
; GCN-NEXT: s_setpc_b64 s[30:31]
2479
2464
%max = call float @llvm.maximumnum.f32 (float -0 .0 , float %a )
2480
2465
%fneg = fneg float %max
@@ -2499,7 +2484,6 @@ define float @v_fneg_0_maximumnum_foldable_use_f32_no_ieee(float %a, float %b) #
2499
2484
; GCN-LABEL: v_fneg_0_maximumnum_foldable_use_f32_no_ieee:
2500
2485
; GCN: ; %bb.0:
2501
2486
; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2502
- ; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0
2503
2487
; GCN-NEXT: v_max_f32_e32 v0, 0, v0
2504
2488
; GCN-NEXT: v_mul_f32_e64 v0, -v0, v1
2505
2489
; 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,
2530
2514
; GCN-LABEL: v_fneg_maximumnum_multi_use_maximumnum_f32_no_ieee:
2531
2515
; GCN: ; %bb.0:
2532
2516
; 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
2536
2518
; GCN-NEXT: v_mul_f32_e32 v1, -4.0, v0
2537
2519
; GCN-NEXT: s_setpc_b64 s[30:31]
2538
2520
%max = call float @llvm.maximumnum.f32 (float %a , float %b )
0 commit comments