| Issue |
178925
|
| Summary |
[SLP] Miscompilation with abs intrinsic
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
cardigan1008
|
This IR miscompiles:
```llvm
define void @src(ptr %in, ptr %inn, ptr %out) {
entry:
%a0 = load <2 x i8>, ptr %in, align 1
%p1 = getelementptr i8, ptr %in, i64 2
%a1 = load <2 x i8>, ptr %p1, align 1
%b0 = load <2 x i8>, ptr %inn, align 1
%p2 = getelementptr i8, ptr %inn, i64 2
%b1 = load <2 x i8>, ptr %p2, align 1
%x = shufflevector <2 x i8> %a0, <2 x i8> %a1,
<4 x i32> <i32 0, i32 1, i32 2, i32 3>
%y = shufflevector <2 x i8> %b0, <2 x i8> %b1,
<4 x i32> <i32 0, i32 1, i32 2, i32 3>
%xs = sext <4 x i8> %x to <4 x i32>
%ys = sext <4 x i8> %y to <4 x i32>
%d = sub <4 x i32> %xs, %ys
%a = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %d, i1 true)
%t = trunc <4 x i32> %a to <4 x i16>
store <4 x i16> %t, ptr %out, align 2
ret void
}
```
Exposed from https://github.com/llvm/llvm-project/commit/709abacdc350d63c61888607edb28ce272daa0a0, cc @alexey-bataev
Alive2 proof: https://alive2.llvm.org/ce/z/FTJcBA
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs