Test source: git
Source: <stdin> ---------------------------------------- define i32 @test_abs_abs_0(i32 %x) { %0: %a = abs i32 %x, 0 %b = abs i32 %a, 0 ret i32 %b } => define i32 @test_abs_abs_0(i32 %x) { %0: %a = abs i32 %x, 0 ret i32 %a } Transformation seems to be correct! ---------------------------------------- define i32 @test_abs_abs_1(i32 %x) { %0: %a = abs i32 %x, 1 %b = abs i32 %a, 0 ret i32 %b } => define i32 @test_abs_abs_1(i32 %x) { %0: %a = abs i32 %x, 1 ret i32 %a } Transformation seems to be correct! ---------------------------------------- define i32 @test_abs_abs_2(i32 %x) { %0: %a = abs i32 %x, 0 %b = abs i32 %a, 1 ret i32 %b } => define i32 @test_abs_abs_2(i32 %x) { %0: %a = abs i32 %x, 0 ret i32 %a } Transformation seems to be correct! ---------------------------------------- define i32 @test_abs_abs_3(i32 %x) { %0: %a = abs i32 %x, 1 %b = abs i32 %a, 1 ret i32 %b } => define i32 @test_abs_abs_3(i32 %x) { %0: %a = abs i32 %x, 1 ret i32 %a } Transformation seems to be correct! ---------------------------------------- define i32 @zext_abs(i31 %x) { %0: %zext = zext i31 %x to i32 %abs = abs i32 %zext, 0 ret i32 %abs } => define i32 @zext_abs(i31 %x) { %0: %zext = zext i31 %x to i32 ret i32 %zext } Transformation seems to be correct! ---------------------------------------- define <3 x i82> @lshr_abs(<3 x i82> %x) { %0: %lshr = lshr <3 x i82> %x, { 1, 1, 1 } %abs = abs <3 x i82> %lshr, 1 ret <3 x i82> %abs } => define <3 x i82> @lshr_abs(<3 x i82> %x) { %0: %lshr = lshr <3 x i82> %x, { 1, 1, 1 } ret <3 x i82> %lshr } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define i32 @and_abs(i32 %x) { %0: %and = and i32 %x, 2147483644 %abs = abs i32 %and, 1 ret i32 %abs } => define i32 @and_abs(i32 %x) { %0: %and = and i32 %x, 2147483644 ret i32 %and } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <3 x i82> @select_abs(<3 x i1> %cond) { %0: %sel = select <3 x i1> %cond, <3 x i82> { 0, 0, 0 }, <3 x i82> { 2147483647, 42, 1 } %abs = abs <3 x i82> %sel, 0 ret <3 x i82> %abs } => define <3 x i82> @select_abs(<3 x i1> %cond) { %0: %sel = select <3 x i1> %cond, <3 x i82> { 0, 0, 0 }, <3 x i82> { 2147483647, 42, 1 } ret <3 x i82> %sel } Transformation seems to be correct! ---------------------------------------- define i32 @assume_abs(i32 %x) { %0: %assume = icmp sge i32 %x, 0 assume i1 %assume %abs = abs i32 %x, 1 ret i32 %abs } => define i32 @assume_abs(i32 %x) { %0: %assume = icmp sge i32 %x, 0 assume i1 %assume ret i32 %x } Transformation seems to be correct! ---------------------------------------- define i1 @test_uadd1() { %0: %x = uadd_overflow {i8, i1} 254, 3 %overflow = extractvalue {i8, i1} %x, 1 ret i1 %overflow } => define i1 @test_uadd1() { %0: ret i1 1 } Transformation seems to be correct! ---------------------------------------- define i8 @test_uadd2() { %0: %x = uadd_overflow {i8, i1} 254, 44 %result = extractvalue {i8, i1} %x, 0 ret i8 %result } => define i8 @test_uadd2() { %0: ret i8 42 } Transformation seems to be correct! ---------------------------------------- define {i8, i1} @test_uadd3(i8 %v) { %0: %result = uadd_overflow {i8, i1} %v, undef ret {i8, i1} %result } => define {i8, i1} @test_uadd3(i8 %v) { %0: ret {i8, i1} { undef, 0 } } Transformation doesn't verify! ERROR: Value mismatch Example: i8 %v = #x40 (64) Source: {i8, i1} %result = { undef, undef } Target: Source value: { undef, undef } Target value: { #x20 (32), #x0 (0) } ------------------- SMT STATS ------------------- Num queries: 29 Num invalid: 0 Num skips: 0 Num trivial: 44 (60.3%) Num timeout: 2 (6.9%) Num errors: 0 (0.0%) Num SAT: 13 (44.8%) Num UNSAT: 14 (48.3%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -instsimplify -S + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstSimplify/call.ll Alive2: Transform doesn't verify; aborting! FileCheck error: '<stdin>' is empty. FileCheck command line: /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstSimplify/call.ll