@@ -482,7 +482,7 @@ define amdgpu_kernel void @v_fneg_self_minnum_f32_ieee(float addrspace(1)* %out,
482
482
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
483
483
%a = load volatile float , float addrspace (1 )* %a.gep
484
484
%min = call float @llvm.minnum.f32 (float %a , float %a )
485
- %min.fneg = fsub float - 0 . 0 , %min
485
+ %min.fneg = fneg float %min
486
486
store float %min.fneg , float addrspace (1 )* %out.gep
487
487
ret void
488
488
}
@@ -493,7 +493,7 @@ define amdgpu_kernel void @v_fneg_self_minnum_f32_ieee(float addrspace(1)* %out,
493
493
; GCN-NEXT: ; return
494
494
define amdgpu_ps float @v_fneg_self_minnum_f32_no_ieee (float %a ) #0 {
495
495
%min = call float @llvm.minnum.f32 (float %a , float %a )
496
- %min.fneg = fsub float - 0 . 0 , %min
496
+ %min.fneg = fneg float %min
497
497
ret float %min.fneg
498
498
}
499
499
@@ -887,7 +887,7 @@ define amdgpu_kernel void @v_fneg_self_maxnum_f32_ieee(float addrspace(1)* %out,
887
887
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
888
888
%a = load volatile float , float addrspace (1 )* %a.gep
889
889
%max = call float @llvm.maxnum.f32 (float %a , float %a )
890
- %max.fneg = fsub float - 0 . 0 , %max
890
+ %max.fneg = fneg float %max
891
891
store float %max.fneg , float addrspace (1 )* %out.gep
892
892
ret void
893
893
}
@@ -898,7 +898,7 @@ define amdgpu_kernel void @v_fneg_self_maxnum_f32_ieee(float addrspace(1)* %out,
898
898
; GCN-NEXT: ; return
899
899
define amdgpu_ps float @v_fneg_self_maxnum_f32_no_ieee (float %a ) #0 {
900
900
%max = call float @llvm.maxnum.f32 (float %a , float %a )
901
- %max.fneg = fsub float - 0 . 0 , %max
901
+ %max.fneg = fneg float %max
902
902
ret float %max.fneg
903
903
}
904
904
@@ -2039,7 +2039,7 @@ define amdgpu_kernel void @v_fneg_amdgcn_sin_f32(float addrspace(1)* %out, float
2039
2039
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2040
2040
%a = load volatile float , float addrspace (1 )* %a.gep
2041
2041
%sin = call float @llvm.amdgcn.sin.f32 (float %a )
2042
- %fneg = fsub float - 0 . 0 , %sin
2042
+ %fneg = fneg float %sin
2043
2043
store float %fneg , float addrspace (1 )* %out.gep
2044
2044
ret void
2045
2045
}
@@ -2059,7 +2059,7 @@ define amdgpu_kernel void @v_fneg_trunc_f32(float addrspace(1)* %out, float addr
2059
2059
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2060
2060
%a = load volatile float , float addrspace (1 )* %a.gep
2061
2061
%trunc = call float @llvm.trunc.f32 (float %a )
2062
- %fneg = fsub float - 0 . 0 , %trunc
2062
+ %fneg = fneg float %trunc
2063
2063
store float %fneg , float addrspace (1 )* %out.gep
2064
2064
ret void
2065
2065
}
@@ -2086,7 +2086,7 @@ define amdgpu_kernel void @v_fneg_round_f32(float addrspace(1)* %out, float addr
2086
2086
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2087
2087
%a = load volatile float , float addrspace (1 )* %a.gep
2088
2088
%round = call float @llvm.round.f32 (float %a )
2089
- %fneg = fsub float - 0 . 0 , %round
2089
+ %fneg = fneg float %round
2090
2090
store float %fneg , float addrspace (1 )* %out.gep
2091
2091
ret void
2092
2092
}
@@ -2106,7 +2106,7 @@ define amdgpu_kernel void @v_fneg_rint_f32(float addrspace(1)* %out, float addrs
2106
2106
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2107
2107
%a = load volatile float , float addrspace (1 )* %a.gep
2108
2108
%rint = call float @llvm.rint.f32 (float %a )
2109
- %fneg = fsub float - 0 . 0 , %rint
2109
+ %fneg = fneg float %rint
2110
2110
store float %fneg , float addrspace (1 )* %out.gep
2111
2111
ret void
2112
2112
}
@@ -2126,7 +2126,7 @@ define amdgpu_kernel void @v_fneg_nearbyint_f32(float addrspace(1)* %out, float
2126
2126
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2127
2127
%a = load volatile float , float addrspace (1 )* %a.gep
2128
2128
%nearbyint = call float @llvm.nearbyint.f32 (float %a )
2129
- %fneg = fsub float - 0 . 0 , %nearbyint
2129
+ %fneg = fneg float %nearbyint
2130
2130
store float %fneg , float addrspace (1 )* %out.gep
2131
2131
ret void
2132
2132
}
@@ -2146,7 +2146,7 @@ define amdgpu_kernel void @v_fneg_canonicalize_f32(float addrspace(1)* %out, flo
2146
2146
%out.gep = getelementptr inbounds float , float addrspace (1 )* %out , i64 %tid.ext
2147
2147
%a = load volatile float , float addrspace (1 )* %a.gep
2148
2148
%trunc = call float @llvm.canonicalize.f32 (float %a )
2149
- %fneg = fsub float - 0 . 0 , %trunc
2149
+ %fneg = fneg float %trunc
2150
2150
store float %fneg , float addrspace (1 )* %out.gep
2151
2151
ret void
2152
2152
}
@@ -2170,7 +2170,7 @@ define amdgpu_kernel void @v_fneg_interp_p1_f32(float addrspace(1)* %out, float
2170
2170
%a = load volatile float , float addrspace (1 )* %a.gep
2171
2171
%b = load volatile float , float addrspace (1 )* %b.gep
2172
2172
%mul = fmul float %a , %b
2173
- %fneg = fsub float - 0 . 0 , %mul
2173
+ %fneg = fneg float %mul
2174
2174
%intrp0 = call float @llvm.amdgcn.interp.p1 (float %fneg , i32 0 , i32 0 , i32 0 )
2175
2175
%intrp1 = call float @llvm.amdgcn.interp.p1 (float %fneg , i32 1 , i32 0 , i32 0 )
2176
2176
store volatile float %intrp0 , float addrspace (1 )* %out.gep
@@ -2193,7 +2193,7 @@ define amdgpu_kernel void @v_fneg_interp_p2_f32(float addrspace(1)* %out, float
2193
2193
%a = load volatile float , float addrspace (1 )* %a.gep
2194
2194
%b = load volatile float , float addrspace (1 )* %b.gep
2195
2195
%mul = fmul float %a , %b
2196
- %fneg = fsub float - 0 . 0 , %mul
2196
+ %fneg = fneg float %mul
2197
2197
%intrp0 = call float @llvm.amdgcn.interp.p2 (float 4 .0 , float %fneg , i32 0 , i32 0 , i32 0 )
2198
2198
%intrp1 = call float @llvm.amdgcn.interp.p2 (float 4 .0 , float %fneg , i32 1 , i32 0 , i32 0 )
2199
2199
store volatile float %intrp0 , float addrspace (1 )* %out.gep
@@ -2230,7 +2230,7 @@ define amdgpu_kernel void @v_fneg_copytoreg_f32(float addrspace(1)* %out, float
2230
2230
%b = load volatile float , float addrspace (1 )* %b.gep
2231
2231
%c = load volatile float , float addrspace (1 )* %c.gep
2232
2232
%mul = fmul float %a , %b
2233
- %fneg = fsub float - 0 . 0 , %mul
2233
+ %fneg = fneg float %mul
2234
2234
%cmp0 = icmp eq i32 %d , 0
2235
2235
br i1 %cmp0 , label %if , label %endif
2236
2236
@@ -2266,7 +2266,7 @@ define amdgpu_kernel void @v_fneg_inlineasm_f32(float addrspace(1)* %out, float
2266
2266
%b = load volatile float , float addrspace (1 )* %b.gep
2267
2267
%c = load volatile float , float addrspace (1 )* %c.gep
2268
2268
%mul = fmul float %a , %b
2269
- %fneg = fsub float - 0 . 0 , %mul
2269
+ %fneg = fneg float %mul
2270
2270
call void asm sideeffect "; use $0" , "v" (float %fneg ) #0
2271
2271
store volatile float %fneg , float addrspace (1 )* %out.gep
2272
2272
ret void
@@ -2295,7 +2295,7 @@ define amdgpu_kernel void @v_fneg_inlineasm_multi_use_src_f32(float addrspace(1)
2295
2295
%b = load volatile float , float addrspace (1 )* %b.gep
2296
2296
%c = load volatile float , float addrspace (1 )* %c.gep
2297
2297
%mul = fmul float %a , %b
2298
- %fneg = fsub float - 0 . 0 , %mul
2298
+ %fneg = fneg float %mul
2299
2299
call void asm sideeffect "; use $0" , "v" (float %fneg ) #0
2300
2300
store volatile float %mul , float addrspace (1 )* %out.gep
2301
2301
ret void
@@ -2328,7 +2328,7 @@ define amdgpu_kernel void @multiuse_fneg_2_vop3_users_f32(float addrspace(1)* %o
2328
2328
%b = load volatile float , float addrspace (1 )* %b.gep
2329
2329
%c = load volatile float , float addrspace (1 )* %c.gep
2330
2330
2331
- %fneg.a = fsub float - 0 . 0 , %a
2331
+ %fneg.a = fneg float %a
2332
2332
%fma0 = call float @llvm.fma.f32 (float %fneg.a , float %b , float %c )
2333
2333
%fma1 = call float @llvm.fma.f32 (float %fneg.a , float %c , float 2 .0 )
2334
2334
@@ -2360,7 +2360,7 @@ define amdgpu_kernel void @multiuse_fneg_2_vop2_users_f32(float addrspace(1)* %o
2360
2360
%b = load volatile float , float addrspace (1 )* %b.gep
2361
2361
%c = load volatile float , float addrspace (1 )* %c.gep
2362
2362
2363
- %fneg.a = fsub float - 0 . 0 , %a
2363
+ %fneg.a = fneg float %a
2364
2364
%mul0 = fmul float %fneg.a , %b
2365
2365
%mul1 = fmul float %fneg.a , %c
2366
2366
@@ -2391,7 +2391,7 @@ define amdgpu_kernel void @multiuse_fneg_vop2_vop3_users_f32(float addrspace(1)*
2391
2391
%b = load volatile float , float addrspace (1 )* %b.gep
2392
2392
%c = load volatile float , float addrspace (1 )* %c.gep
2393
2393
2394
- %fneg.a = fsub float - 0 . 0 , %a
2394
+ %fneg.a = fneg float %a
2395
2395
%fma0 = call float @llvm.fma.f32 (float %fneg.a , float %b , float 2 .0 )
2396
2396
%mul1 = fmul float %fneg.a , %c
2397
2397
@@ -2433,7 +2433,7 @@ define amdgpu_kernel void @free_fold_src_code_size_cost_use_f32(float addrspace(
2433
2433
%d = load volatile float , float addrspace (1 )* %d.gep
2434
2434
2435
2435
%fma0 = call float @llvm.fma.f32 (float %a , float %b , float 2 .0 )
2436
- %fneg.fma0 = fsub float - 0 . 0 , %fma0
2436
+ %fneg.fma0 = fneg float %fma0
2437
2437
%mul1 = fmul float %fneg.fma0 , %c
2438
2438
%mul2 = fmul float %fneg.fma0 , %d
2439
2439
@@ -2501,7 +2501,7 @@ define amdgpu_kernel void @one_use_cost_to_fold_into_src_f32(float addrspace(1)*
2501
2501
%d = load volatile float , float addrspace (1 )* %d.gep
2502
2502
2503
2503
%trunc.a = call float @llvm.trunc.f32 (float %a )
2504
- %trunc.fneg.a = fsub float - 0 . 0 , %trunc.a
2504
+ %trunc.fneg.a = fneg float %trunc.a
2505
2505
%fma0 = call float @llvm.fma.f32 (float %trunc.fneg.a , float %b , float %c )
2506
2506
store volatile float %fma0 , float addrspace (1 )* %out
2507
2507
ret void
@@ -2531,7 +2531,7 @@ define amdgpu_kernel void @multi_use_cost_to_fold_into_src(float addrspace(1)* %
2531
2531
%d = load volatile float , float addrspace (1 )* %d.gep
2532
2532
2533
2533
%trunc.a = call float @llvm.trunc.f32 (float %a )
2534
- %trunc.fneg.a = fsub float - 0 . 0 , %trunc.a
2534
+ %trunc.fneg.a = fneg float %trunc.a
2535
2535
%fma0 = call float @llvm.fma.f32 (float %trunc.fneg.a , float %b , float %c )
2536
2536
%mul1 = fmul float %trunc.a , %d
2537
2537
store volatile float %fma0 , float addrspace (1 )* %out
0 commit comments