From d12de955856204db4cabdd9bcabc82c22d0e85f2 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Sat, 15 Dec 2012 09:31:54 +0000 Subject: [PATCH] Add a corollary test for PR14572. We got this code path correct already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170271 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/SROA/basictest.ll | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test/Transforms/SROA/basictest.ll b/test/Transforms/SROA/basictest.ll index ba93e04a51d..7856a7e4396 100644 --- a/test/Transforms/SROA/basictest.ll +++ b/test/Transforms/SROA/basictest.ll @@ -1177,10 +1177,10 @@ entry: ret void } -define <3 x i8> @PR14572(i32 %x) { +define <3 x i8> @PR14572.1(i32 %x) { ; Ensure that a split integer store which is wider than the type size of the ; alloca (relying on the alloc size padding) doesn't trigger an assert. -; CHECK: @PR14572 +; CHECK: @PR14572.1 entry: %a = alloca <3 x i8>, align 4 @@ -1192,3 +1192,19 @@ entry: ret <3 x i8> %y ; CHECK: ret <3 x i8> } + +define i32 @PR14572.2(<3 x i8> %x) { +; Ensure that a split integer load which is wider than the type size of the +; alloca (relying on the alloc size padding) doesn't trigger an assert. +; CHECK: @PR14572.2 + +entry: + %a = alloca <3 x i8>, align 4 +; CHECK-NOT: alloca + + store <3 x i8> %x, <3 x i8>* %a, align 1 + %cast = bitcast <3 x i8>* %a to i32* + %y = load i32* %cast, align 4 + ret i32 %y +; CHECK: ret i32 +} -- 2.11.0