[llvm] [ValueTracking] Propagate non-negativity through fptosi (PR #217868)
Aayush Shrivastava via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 22 07:30:39 PDT 2026
================
@@ -5259,7 +5259,7 @@ define float @test_pow_afn_nnan_ninf_f32_known_integral_uitofp(float %x, i32 %y)
; PRELINK-NEXT: [[TMP1:%.*]] = fptosi float [[Y_CAST]] to i32
; PRELINK-NEXT: [[__FABS:%.*]] = call nnan ninf afn float @llvm.fabs.f32(float [[X]])
; PRELINK-NEXT: [[__LOG2:%.*]] = call nnan ninf afn float @llvm.log2.f32(float [[__FABS]])
-; PRELINK-NEXT: [[POWNI2F:%.*]] = sitofp nnan ninf afn i32 [[TMP1]] to float
+; PRELINK-NEXT: [[POWNI2F:%.*]] = uitofp nneg i32 [[TMP1]] to float
----------------
iamaayushrivastava wrote:
Thanks for confirming, @dtcxzyw. Fixed `visitSIToFP` to propagate `ninf/nsz` onto the new `uitofp` (the flags that stay meaningful per #198470), while still dropping nnan/afn/etc. as those don't carry real information for a value preserving cast.
https://github.com/llvm/llvm-project/pull/217868
More information about the llvm-commits
mailing list