[llvm] r326115 - [InstCombine] Add test cases with vector constants to fpextend.ll

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 26 11:36:37 PST 2018


Author: ctopper
Date: Mon Feb 26 11:36:37 2018
New Revision: 326115

URL: http://llvm.org/viewvc/llvm-project?rev=326115&view=rev
Log:
[InstCombine] Add test cases with vector constants to fpextend.ll

Modified:
    llvm/trunk/test/Transforms/InstCombine/fpextend.ll

Modified: llvm/trunk/test/Transforms/InstCombine/fpextend.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/fpextend.ll?rev=326115&r1=326114&r2=326115&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/fpextend.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/fpextend.ll Mon Feb 26 11:36:37 2018
@@ -3,6 +3,7 @@
 
 @X = external global float
 @Y = external global float
+ at Z = external global <2 x float>
 
 define void @test() nounwind  {
 ; CHECK-LABEL: @test(
@@ -77,3 +78,43 @@ entry:
   store float %tmp34, float* @X, align 4
   ret void
 }
+
+; Test with vector splat constant
+define void @test5() nounwind  {
+; CHECK-LABEL: @test5(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[TMP:%.*]] = load <2 x float>, <2 x float>* @Z, align 8
+; CHECK-NEXT:    [[TMP1:%.*]] = fpext <2 x float> [[TMP]] to <2 x double>
+; CHECK-NEXT:    [[TMP3:%.*]] = fadd <2 x double> [[TMP1]], zeroinitializer
+; CHECK-NEXT:    [[TMP34:%.*]] = fptrunc <2 x double> [[TMP3]] to <2 x float>
+; CHECK-NEXT:    store <2 x float> [[TMP34]], <2 x float>* @Z, align 8
+; CHECK-NEXT:    ret void
+;
+entry:
+  %tmp = load <2 x float>, <2 x float>* @Z, align 4
+  %tmp1 = fpext <2 x float> %tmp to <2 x double>
+  %tmp3 = fadd <2 x double> %tmp1, <double 0.000000e+00, double 0.000000e+00>
+  %tmp34 = fptrunc <2 x double> %tmp3 to <2 x float>
+  store <2 x float> %tmp34, <2 x float>* @Z, align 4
+  ret void
+}
+
+; Test with a non-splat constant
+define void @test6() nounwind  {
+; CHECK-LABEL: @test6(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[TMP:%.*]] = load <2 x float>, <2 x float>* @Z, align 8
+; CHECK-NEXT:    [[TMP1:%.*]] = fpext <2 x float> [[TMP]] to <2 x double>
+; CHECK-NEXT:    [[TMP3:%.*]] = fadd <2 x double> [[TMP1]], <double 0.000000e+00, double -0.000000e+00>
+; CHECK-NEXT:    [[TMP34:%.*]] = fptrunc <2 x double> [[TMP3]] to <2 x float>
+; CHECK-NEXT:    store <2 x float> [[TMP34]], <2 x float>* @Z, align 8
+; CHECK-NEXT:    ret void
+;
+entry:
+  %tmp = load <2 x float>, <2 x float>* @Z, align 4
+  %tmp1 = fpext <2 x float> %tmp to <2 x double>
+  %tmp3 = fadd <2 x double> %tmp1, <double 0.000000e+00, double -0.000000e+00>
+  %tmp34 = fptrunc <2 x double> %tmp3 to <2 x float>
+  store <2 x float> %tmp34, <2 x float>* @Z, align 4
+  ret void
+}




More information about the llvm-commits mailing list