Index: llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll =================================================================== --- llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll +++ llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll @@ -27,22 +27,11 @@ @a = common global i32** null @b = common global [1 x i32] zeroinitializer -@aa = alias i32**, i32*** @a define i1 @PR28011(i16 %a) { ; CHECK-LABEL: @PR28011( ; CHECK-NEXT: [[CONV:%.*]] = sext i16 [[A:%.*]] to i32 -; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[CONV]], or (i32 zext (i1 icmp ne (i32*** bitcast ([1 x i32]* @b to i32***), i32*** @aa) to i32), i32 1) -; CHECK-NEXT: ret i1 [[CMP]] -; - %conv = sext i16 %a to i32 - %cmp = icmp ne i32 %conv, or (i32 zext (i1 icmp ne (i32*** bitcast ([1 x i32]* @b to i32***), i32*** @aa) to i32), i32 1) - ret i1 %cmp -} - -define i1 @PR28011a(i16 %a) { -; CHECK-LABEL: @PR28011a( -; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[A:%.*]], 1 +; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[CONV]], or (i32 zext (i1 icmp ne (i32*** bitcast ([1 x i32]* @b to i32***), i32*** @a) to i32), i32 1) ; CHECK-NEXT: ret i1 [[CMP]] ; %conv = sext i16 %a to i32 Index: llvm/test/Transforms/SimplifyCFG/PR17073.ll =================================================================== --- llvm/test/Transforms/SimplifyCFG/PR17073.ll +++ llvm/test/Transforms/SimplifyCFG/PR17073.ll @@ -11,9 +11,8 @@ target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" target triple = "i386-apple-macosx10.9.0" -@g = common global i32 0, align 4 +@a = common global i32 0, align 4 @b = common global i8 0, align 1 -@a = alias i32, i32* @g define i32* @can_trap1() { ; CHECK-LABEL: @can_trap1( @@ -99,75 +98,3 @@ %storemerge = phi i32* [ null, %entry ],[ null, %block2 ], [ select (i1 icmp eq (i64 add (i64 2, i64 zext (i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @a) to i64)), i64 0), i32* null, i32* @a), %block1 ] ret i32* %storemerge } - -; The following are the original test cases using global @g, and can be simplified now. - -define i32* @no_trap1() { -; CHECK-LABEL: @no_trap1( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4 -; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[TMP0]], 0 -; CHECK-NEXT: ret i32* null -; -entry: - %0 = load i32, i32* @g, align 4 - %tobool = icmp eq i32 %0, 0 - br i1 %tobool, label %exit, label %block1 - -block1: - br i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g), label %exit, label %block2 - -block2: - br label %exit - -exit: - %storemerge = phi i32* [ null, %entry ],[ null, %block2 ], [ select (i1 icmp eq (i64 urem (i64 2, i64 zext (i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g) to i64)), i64 0), i32* null, i32* @g), %block1 ] - ret i32* %storemerge -} - -define i32* @no_trap2() { -; CHECK-LABEL: @no_trap2( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4 -; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[TMP0]], 0 -; CHECK-NEXT: [[STOREMERGE:%.*]] = select i1 [[TOBOOL]], i32* @g, i32* null -; CHECK-NEXT: ret i32* [[STOREMERGE]] -; -entry: - %0 = load i32, i32* @g, align 4 - %tobool = icmp eq i32 %0, 0 - br i1 %tobool, label %exit, label %block1 - -block1: - br i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g), label %exit, label %block2 - -block2: - br label %exit - -exit: - %storemerge = phi i32* [ select (i1 icmp eq (i64 urem (i64 2, i64 zext (i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g) to i64)), i64 0), i32* null, i32* @g), %entry ],[ null, %block2 ], [ null, %block1 ] - ret i32* %storemerge -} - -define i32* @no_trap3() { -; CHECK-LABEL: @no_trap3( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4 -; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[TMP0]], 0 -; CHECK-NEXT: ret i32* null -; -entry: - %0 = load i32, i32* @g, align 4 - %tobool = icmp eq i32 %0, 0 - br i1 %tobool, label %exit, label %block1 - -block1: - br i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g), label %exit, label %block2 - -block2: - br label %exit - -exit: - %storemerge = phi i32* [ null, %entry ],[ null, %block2 ], [ select (i1 icmp eq (i64 add (i64 2, i64 zext (i1 icmp eq (i32* bitcast (i8* @b to i32*), i32* @g) to i64)), i64 0), i32* null, i32* @g), %block1 ] - ret i32* %storemerge -}