[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / Thumb / iabs-vector.ll
blob169400f27ce36e95f74c905b57571d8bd01d4e9e
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=thumbv7--- | FileCheck %s
4 define void @PR41160(<8 x i32>* %p) nounwind {
5 ; CHECK-LABEL: PR41160:
6 ; CHECK:       @ %bb.0:
7 ; CHECK-NEXT:    vld1.8 {d16, d17}, [r0]
8 ; CHECK-NEXT:    vabs.s32 q8, q8
9 ; CHECK-NEXT:    vst1.8 {d16, d17}, [r0]!
10 ; CHECK-NEXT:    vld1.8 {d16, d17}, [r0]
11 ; CHECK-NEXT:    vabs.s32 q8, q8
12 ; CHECK-NEXT:    vst1.8 {d16, d17}, [r0]
13 ; CHECK-NEXT:    bx lr
14   %tmp1 = load <8 x i32>, <8 x i32>* %p, align 1
15   %tmp2 = icmp slt <8 x i32> %tmp1, zeroinitializer
16   %tmp3 = sub nsw <8 x i32> zeroinitializer, %tmp1
17   %tmp4 = select <8 x i1> %tmp2, <8 x i32> %tmp3, <8 x i32> %tmp1
18   store <8 x i32> %tmp4, <8 x i32>* %p, align 1
19   ret void