aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/ScalarRepl/vector_promote.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/Transforms/ScalarRepl/vector_promote.ll b/test/Transforms/ScalarRepl/vector_promote.ll
index 898cbde353..8e143612eb 100644
--- a/test/Transforms/ScalarRepl/vector_promote.ll
+++ b/test/Transforms/ScalarRepl/vector_promote.ll
@@ -157,3 +157,17 @@ define void @test10(<4 x i256> %x, <2 x i256> %y) {
; CHECK-NEXT: insertelement <2 x i512>
; CHECK-NEXT: bitcast <2 x i512> %tmp2 to <4 x i256>
}
+
+%union.v = type { <2 x i64> }
+
+define void @test11(<2 x i64> %x) {
+ %a = alloca %union.v
+ %p = getelementptr inbounds %union.v* %a, i32 0, i32 0
+ store <2 x i64> %x, <2 x i64>* %p, align 16
+ %q = getelementptr inbounds %union.v* %a, i32 0, i32 0
+ %r = bitcast <2 x i64>* %q to <4 x float>*
+ %b = load <4 x float>* %r, align 16
+ ret void
+; CHECK: @test11
+; CHECK-NOT: alloca
+}