[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