From 6607716368ba04454ff9ad62ac25936357d67c51 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Tue, 25 Dec 2012 14:56:21 +0000 Subject: [msan] Fix handling of select with vector condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171069 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Instrumentation/MemorySanitizer/msan_basic.ll | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test/Instrumentation/MemorySanitizer/msan_basic.ll') diff --git a/test/Instrumentation/MemorySanitizer/msan_basic.ll b/test/Instrumentation/MemorySanitizer/msan_basic.ll index 1e2be00..3237e91 100644 --- a/test/Instrumentation/MemorySanitizer/msan_basic.ll +++ b/test/Instrumentation/MemorySanitizer/msan_basic.ll @@ -251,6 +251,23 @@ entry: ; CHECK: ret i32 +; Check that we propagate origin for "select" with vector condition. +; Select condition is flattened to i1, which is then used to select one of the +; argument origins. + +define <8 x i16> @SelectVector(<8 x i16> %a, <8 x i16> %b, <8 x i1> %c) nounwind uwtable readnone { +entry: + %cond = select <8 x i1> %c, <8 x i16> %a, <8 x i16> %b + ret <8 x i16> %cond +} + +; CHECK-ORIGINS: @SelectVector +; CHECK-ORIGINS: bitcast <8 x i1> {{.*}} to i8 +; CHECK-ORIGINS: icmp ne i8 +; CHECK-ORIGINS: select i1 +; CHECK-ORIGINS: ret <8 x i16> + + define i8* @IntToPtr(i64 %x) nounwind uwtable readnone { entry: %0 = inttoptr i64 %x to i8* -- cgit v1.1