mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[InstCombine] Add test cases with vector constants to fpextend.ll
llvm-svn: 326115
This commit is contained in:
parent
e2c3788d3e
commit
35a1a2ec29
@ -3,6 +3,7 @@
|
||||
|
||||
@X = external global float
|
||||
@Y = external global float
|
||||
@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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user