[llvm] [InstCombine] Recognize copysign idioms (PR #101324)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 31 05:24:33 PDT 2024
================
@@ -375,11 +375,8 @@ declare float @_Z4pownfi(float, i32)
; GCN: %__log2 = tail call fast float @llvm.log2.f32(float %__fabs)
; GCN: %__ylogx = fmul fast float %__log2, 1.013000e+03
; GCN: %__exp2 = tail call fast float @llvm.exp2.f32(float %__ylogx)
-; GCN: %[[r0:.*]] = bitcast float %tmp to i32
-; GCN: %__pow_sign = and i32 %[[r0]], -2147483648
-; GCN: %[[r1:.*]] = bitcast float %__exp2 to i32
-; GCN: %[[r2:.*]] = or disjoint i32 %__pow_sign, %[[r1]]
-; GCN: store i32 %[[r2]], ptr addrspace(1) %a, align 4
+; GCN: %[[r0:.*]] = tail call float @llvm.copysign.f32(float %__exp2, float %tmp)
+; GCN: store float %[[r0]], ptr addrspace(1) %a, align 4
----------------
arsenm wrote:
I have a patch to manually do this but it was reverted
https://github.com/llvm/llvm-project/pull/101324
More information about the llvm-commits
mailing list