From: Chad Rosier Date: Mon, 18 Feb 2013 21:46:28 +0000 (+0000) Subject: [fast-isel] Remove an invalid assert. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f3f8f443e10cbba0c313c41b3dc3632e39804c96;p=platform%2Fupstream%2Fllvm.git [fast-isel] Remove an invalid assert. If the memcpy has an odd length with an alignment of 2, this would incorrectly assert on the last 1 byte copy. rdar://13202135 llvm-svn: 175459 --- diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp index 022fe97..b545dbc 100644 --- a/llvm/lib/Target/ARM/ARMFastISel.cpp +++ b/llvm/lib/Target/ARM/ARMFastISel.cpp @@ -2458,7 +2458,6 @@ bool ARMFastISel::ARMTryEmitSmallMemCpy(Address Dest, Address Src, if (Len >= 2 && Alignment == 2) VT = MVT::i16; else { - assert (Alignment == 1 && "Expected an alignment of 1!"); VT = MVT::i8; } } diff --git a/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll b/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll index 7d38cc2..3128f5e 100644 --- a/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll +++ b/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll @@ -231,3 +231,10 @@ define void @t6() nounwind ssp { call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 4), i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 16), i32 10, i32 1, i1 false) ret void } + +rdar://13202135 +define void @t7() nounwind ssp { +; Just make sure this doesn't assert when we have an odd length and an alignment of 2. + call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 4), i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 16), i32 3, i32 2, i1 false) + ret void +}