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

Reply via email to