We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The following transformation in Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll is incorrect:
define <3 x i1> @p3_vec_splat_undef() { %x = call <3 x i8> @gen3x8() %tmp0 = and <3 x i8> %x, { 3, undef, 3 } %ret = icmp sgt <3 x i8> %x, %tmp0 ret <3 x i1> %ret } => define <3 x i1> @p3_vec_splat_undef() {
%x = call <3 x i8> @gen3x8() %1 = icmp sgt <3 x i8> %x, { 3, undef, 3 } ret <3 x i1> %1 }
Transformation doesn't verify! ERROR: Value mismatch
Example:
Source: <3 x i8> %x = < poison, #x00 (0), poison > <3 x i8> %tmp0 = < poison, #x00 (0), poison > <3 x i1> %ret = < poison, #x0 (0), poison >
Target: <3 x i8> %x = < poison, #x00 (0), poison > <3 x i1> %1 = < poison, #x1 (1), poison > Source value: < poison, #x0 (0), poison > Target value: < poison, #x1 (1), poison >
The transformation does 'x > (x & undef)' -> 'x > undef'. Take x=0, undef=-1, and we get '0 > 0' -> '0 > -1'.
The text was updated successfully, but these errors were encountered:
https://reviews.llvm.org/D72101
Sorry, something went wrong.
@nlopes @spatel This landed at rG164058274364 - resolve this?
Forgot to mark this bug as fixed with: https://reviews.llvm.org/rG164058274364670c8b59055b4689ae7e1720268e
mentioned in issue #47292
No branches or pull requests
Extended Description
The following transformation in Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll is incorrect:
define <3 x i1> @p3_vec_splat_undef() {
%x = call <3 x i8> @gen3x8()
%tmp0 = and <3 x i8> %x, { 3, undef, 3 }
%ret = icmp sgt <3 x i8> %x, %tmp0
ret <3 x i1> %ret
}
=>
define <3 x i1> @p3_vec_splat_undef() {
%x = call <3 x i8> @gen3x8()
%1 = icmp sgt <3 x i8> %x, { 3, undef, 3 }
ret <3 x i1> %1
}
Transformation doesn't verify!
ERROR: Value mismatch
Example:
Source:
<3 x i8> %x = < poison, #x00 (0), poison >
<3 x i8> %tmp0 = < poison, #x00 (0), poison >
<3 x i1> %ret = < poison, #x0 (0), poison >
Target:
<3 x i8> %x = < poison, #x00 (0), poison >
<3 x i1> %1 = < poison, #x1 (1), poison >
Source value: < poison, #x0 (0), poison >
Target value: < poison, #x1 (1), poison >
The transformation does 'x > (x & undef)' -> 'x > undef'.
Take x=0, undef=-1, and we get '0 > 0' -> '0 > -1'.
The text was updated successfully, but these errors were encountered: