Test Failure: Transforms/InstCombine/max-of-nots.ll

Test source: git

Log:

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, #x7ffc4000 (2147237888) >

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], #x8003bfff (2147729407, -2147237889) >
<2 x i1> %cmp = < #x1 (1), #x0 (0) >
<2 x i32> %min = < #x80000000 (2147483648, -2147483648), #x8003bfff (2147729407, -2147237889) >

Target:
<2 x i1> %1 = < #x0 (0), #x1 (1) >
<2 x i32> %2 = < #x00000000 (0), #x00000000 (0) >
<2 x i32> %min = < #xffffffff (4294967295, -1), #xffffffff (4294967295, -1) >
Source value: < #x80000000 (2147483648, -2147483648), #x8003bfff (2147729407, -2147237889) >
Target value: < #xffffffff (4294967295, -1), #xffffffff (4294967295, -1) >


------------------- SMT STATS -------------------
Num queries: 9
Num invalid: 0
Num skips:   0
Num trivial: 4 (30.8%)
Num timeout: 3 (33.3%)
Num errors:  0 (0.0%)
Num SAT:     3 (33.3%)
Num UNSAT:   3 (33.3%)

stderr:

+ : 'RUN: at line 2'
+ /home/nlopes/alive2/build/opt-alive.sh -S -instcombine
+ /home/nlopes/llvm/build/bin/FileCheck --allow-unused-prefixes=false /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 --allow-unused-prefixes=false /home/nlopes/llvm/llvm/test/Transforms/InstCombine/max-of-nots.ll

 

NOTE: This test would pass if undef didn't exist!

 

<-- Back