Issue 115458
Summary [InstCombine] miscompilation
Labels new issue
Assignees
Reporter bongjunj
    Alive2 report: https://alive2.llvm.org/ce/z/GmGpRE

```llvm
----------------------------------------
define i8 @sext_multi_uses.2(i8 %a, i1 %b, i8 %x) {
#0:
  %#1 = sext i1 %b to i8
  %#2 = mul nsw i8 %a, %#1
  %#3 = select i1 %b, i8 %#2, i8 %a
 %#4 = sub i8 %#1, %#3
  %f = mul nuw i8 %x, %#1
  %r = add i8 %f, %#4
  ret i8 %r
}
=>
define i8 @sext_multi_uses.2(i8 %a, i1 %b, i8 %x) {
#0:
  %#1 = sub nsw i8 0, %a
  %#2 = xor i8 %x, 255
 %#3 = add i8 %a, %#2
  %r = select i1 %b, i8 %#3, i8 %#1
  ret i8 %r
}
Transformation doesn't verify!

ERROR: Target is more poisonous than source

Example:
i8 %a = #x80 (128, -128)
i1 %b = #x0 (0)
i8 %x = #x00 (0)

Source:
i8 %#1 = #x00 (0)
i8 %#2 = #x00 (0)
i8 %#3 = #x80 (128, -128)
i8 %#4 = #x80 (128, -128)
i8 %f = #x00 (0)
i8 %r = #x80 (128, -128)

Target:
i8 %#1 = poison
i8 %#2 = #xff (255, -1)
i8 %#3 = #x7f (127)
i8 %r = poison
Source value: #x80 (128, -128)
Target value: poison

Summary:
  0 correct transformations
  1 incorrect transformations
  0 failed-to-prove transformations
  0 Alive2 errors
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to