[InstCombine] add tests for fmul nnan with 0.0; NFC
authorSanjay Patel <spatel@rotateright.com>
Tue, 18 Oct 2022 12:52:34 +0000 (08:52 -0400)
committerSanjay Patel <spatel@rotateright.com>
Tue, 18 Oct 2022 14:20:08 +0000 (10:20 -0400)
llvm/test/Transforms/InstCombine/fmul.ll

index a5501ac..1c393e6 100644 (file)
@@ -1200,3 +1200,39 @@ define <vscale x 2 x float> @mul_scalable_splat_zero(<vscale x 2 x float> %z) {
   %t3 = fmul fast <vscale x 2 x float> %shuf, %z
   ret <vscale x 2 x float> %t3
 }
+
+define half @mul_zero_nnan(half %x) {
+; CHECK-LABEL: @mul_zero_nnan(
+; CHECK-NEXT:    [[R:%.*]] = fmul nnan half [[X:%.*]], 0xH0000
+; CHECK-NEXT:    ret half [[R]]
+;
+  %r = fmul nnan half %x, 0.0
+  ret half %r
+}
+
+define <2 x float> @mul_zero_nnan_vec_poison(<2 x float> %x) {
+; CHECK-LABEL: @mul_zero_nnan_vec_poison(
+; CHECK-NEXT:    [[R:%.*]] = fmul nnan <2 x float> [[X:%.*]], <float 0.000000e+00, float poison>
+; CHECK-NEXT:    ret <2 x float> [[R]]
+;
+  %r = fmul nnan <2 x float> %x, <float 0.0, float poison>
+  ret <2 x float> %r
+}
+
+define half @mul_zero(half %x) {
+; CHECK-LABEL: @mul_zero(
+; CHECK-NEXT:    [[R:%.*]] = fmul ninf nsz half [[X:%.*]], 0xH0000
+; CHECK-NEXT:    ret half [[R]]
+;
+  %r = fmul ninf nsz half %x, 0.0
+  ret half %r
+}
+
+define half @mul_negzero_nnan(half %x) {
+; CHECK-LABEL: @mul_negzero_nnan(
+; CHECK-NEXT:    [[R:%.*]] = fmul nnan half [[X:%.*]], 0xH8000
+; CHECK-NEXT:    ret half [[R]]
+;
+  %r = fmul nnan half %x, -0.0
+  ret half %r
+}