Test source: git
Source: <stdin> ---------------------------------------- define <2 x i32> @umin_of_nots(<2 x i32> %x, <2 x i32> %y) { %0: %notx = xor <2 x i32> %x, { 4294967295, 4294967295 } %noty = xor <2 x i32> %y, { 4294967295, 4294967295 } %cmp = icmp ult <2 x i32> %notx, %noty %min = select <2 x i1> %cmp, <2 x i32> %notx, <2 x i32> %noty ret <2 x i32> %min } => define <2 x i32> @umin_of_nots(<2 x i32> %x, <2 x i32> %y) { %0: %1 = icmp ugt <2 x i32> %x, %y %2 = select <2 x i1> %1, <2 x i32> %x, <2 x i32> %y %min = xor <2 x i32> %2, { 4294967295, 4294967295 } ret <2 x i32> %min } Transformation doesn't verify! ERROR: Timeout ---------------------------------------- define <2 x i32> @smin_of_nots(<2 x i32> %x, <2 x i32> %y) { %0: %notx = xor <2 x i32> %x, { 4294967295, 4294967295 } %noty = xor <2 x i32> %y, { 4294967295, 4294967295 } %cmp = icmp sle <2 x i32> %notx, %noty %min = select <2 x i1> %cmp, <2 x i32> %notx, <2 x i32> %noty ret <2 x i32> %min } => define <2 x i32> @smin_of_nots(<2 x i32> %x, <2 x i32> %y) { %0: %1 = icmp sgt <2 x i32> %x, %y %2 = select <2 x i1> %1, <2 x i32> %x, <2 x i32> %y %min = xor <2 x i32> %2, { 4294967295, 4294967295 } ret <2 x i32> %min } Transformation doesn't verify! ERROR: Target's return value is more undefined Example: <2 x i32> %x = < #x7fffffff (2147483647), undef > <2 x i32> %y = < undef, undef > Source: <2 x i32> %notx = < #x80000000 (2147483648, -2147483648), #xffffffff (4294967295, -1) [based on undef value] > <2 x i32> %noty = < #xffffffff (4294967295, -1) [based on undef value], #xffffffff (4294967295, -1) [based on undef value] > <2 x i1> %cmp = < #x1 (1), #x1 (1) > <2 x i32> %min = < #x80000000 (2147483648, -2147483648), #xffffffff (4294967295, -1) [based on undef value] > Target: <2 x i1> %1 = < #x0 (0), #x1 (1) > <2 x i32> %2 = < #x00000000 (0), #x00000002 (2) > <2 x i32> %min = < #xffffffff (4294967295, -1), #xfffffffd (4294967293, -3) > Source value: < #x80000000 (2147483648, -2147483648), #xffffffff (4294967295, -1) > Target value: < #xffffffff (4294967295, -1), #xfffffffd (4294967293, -3) > ------------------- SMT STATS ------------------- Num queries: 11 Num invalid: 0 Num skips: 0 Num trivial: 4 (26.7%) Num timeout: 5 (45.5%) Num errors: 0 (0.0%) Num SAT: 3 (27.3%) Num UNSAT: 3 (27.3%)
+ : 'RUN: at line 2' + /home/nlopes/alive2/scripts/opt-alive.sh -S -instcombine + /home/nlopes/llvm/build/bin/FileCheck /home/nlopes/llvm/llvm/test/Transforms/InstCombine/max-of-nots.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/InstCombine/max-of-nots.ll
NOTE: This test would pass if undef didn't exist!