[InstSimplify] add tests for FP constant miscompile; NFC (PR43907)
authorSanjay Patel <spatel@rotateright.com>
Thu, 17 Sep 2020 13:02:26 +0000 (09:02 -0400)
committerSanjay Patel <spatel@rotateright.com>
Thu, 17 Sep 2020 16:04:39 +0000 (12:04 -0400)
llvm/test/Transforms/InstSimplify/ConstProp/cast.ll

index 170e2d5..b1b879d 100644 (file)
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 ; RUN: opt < %s -instsimplify -S | FileCheck %s
 
 ; Overflow on a float to int or int to float conversion is undefined (PR21130).
@@ -38,3 +39,20 @@ define float @overflow_sitofp() {
   ret float %i
 }
 
+; https://llvm.org/PR43907
+
+define float @nan_f64_trunc() {
+; CHECK-LABEL: @nan_f64_trunc(
+; CHECK-NEXT:    ret float 0x7FF0000000000000
+;
+  %f = fptrunc double 0x7FF0000000000001 to float
+  ret float %f
+}
+
+define <2 x half> @nan_v2f32_trunc() {
+; CHECK-LABEL: @nan_v2f32_trunc(
+; CHECK-NEXT:    ret <2 x half> <half 0xH7C00, half 0xH7C37>
+;
+  %f = fptrunc <2 x float> <float 0x7FF0000100000000, float 0x7FF0DEAD00000000> to <2 x half>
+  ret <2 x half> %f
+}