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

Reply via email to