Issue |
137582
|
Summary |
[CVP] Miscompilation at -O3
|
Labels |
miscompilation,
llvm:optimizations,
generated by fuzzer
|
Assignees |
dtcxzyw
|
Reporter |
dtcxzyw
|
Reproducer: https://alive2.llvm.org/ce/z/x4KrLX
```
----------------------------------------
define i8 @func_124(i16 %.promoted) {
entry:
%inc20.i = or i16 %.promoted, 1
%conv.i.i = trunc i16 %inc20.i to i8
%narrow.i.i.i = smin i8 %conv.i.i, 0
assume_welldefined i8 %narrow.i.i.i
%tobool.not.i46 = icmp eq i16 %.promoted, 0
br i1 %tobool.not.i46, label %func_127.exit, label %land.rhs.i47
land.rhs.i47:
br label %func_127.exit
func_127.exit:
%conv5.i.i.pn.in = phi i8 [ %narrow.i.i.i, %entry ], [ 0, %land.rhs.i47 ]
ret i8 %conv5.i.i.pn.in
}
=>
define i8 @func_124(i16 %.promoted) {
entry:
%inc20.i = or i16 %.promoted, 1
%conv.i.i = trunc nsw nuw i16 %inc20.i to i8
%narrow.i.i.i = smin i8 %conv.i.i, 0
assume_welldefined i8 %narrow.i.i.i
%tobool.not.i46 = icmp eq i16 %.promoted, 0
br i1 %tobool.not.i46, label %func_127.exit, label %land.rhs.i47
land.rhs.i47:
br label %func_127.exit
func_127.exit:
%conv5.i.i.pn.in = phi i8 [ %narrow.i.i.i, %entry ], [ 0, %land.rhs.i47 ]
%#range_0_%conv5.i.i.pn.in = !range i8 %conv5.i.i.pn.in, i8 128, i8 1
ret i8 %#range_0_%conv5.i.i.pn.in
}
Transformation doesn't verify!
ERROR: Source is more defined than target
Example:
i16 %.promoted = #x0080 (128)
Source:
i16 %inc20.i = #x0081 (129)
i8 %conv.i.i = #x81 (129, -127)
i8 %narrow.i.i.i = #x81 (129, -127)
i1 %tobool.not.i46 = #x0 (0)
>> Jump to %land.rhs.i47
>> Jump to %func_127.exit
i8 %conv5.i.i.pn.in = #x00 (0)
Target:
i16 %inc20.i = #x0081 (129)
i8 %conv.i.i = poison
i8 %narrow.i.i.i = poison
void = UB triggered!
Summary:
0 correct transformations
1 incorrect transformations
0 failed-to-prove transformations
0 Alive2 errors
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs