summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/sadd_sat_plus.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/ARM/sadd_sat_plus.ll')
-rw-r--r--llvm/test/CodeGen/ARM/sadd_sat_plus.ll38
1 files changed, 8 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/ARM/sadd_sat_plus.ll b/llvm/test/CodeGen/ARM/sadd_sat_plus.ll
index 94aca12a78b..370d5d989a8 100644
--- a/llvm/test/CodeGen/ARM/sadd_sat_plus.ll
+++ b/llvm/test/CodeGen/ARM/sadd_sat_plus.ll
@@ -258,29 +258,15 @@ define signext i16 @func16(i16 signext %x, i16 signext %y, i16 signext %z) nounw
; CHECK-T2DSP-LABEL: func16:
; CHECK-T2DSP: @ %bb.0:
; CHECK-T2DSP-NEXT: muls r1, r2, r1
-; CHECK-T2DSP-NEXT: sxtah r0, r0, r1
-; CHECK-T2DSP-NEXT: movw r1, #32767
-; CHECK-T2DSP-NEXT: cmp r0, r1
-; CHECK-T2DSP-NEXT: it lt
-; CHECK-T2DSP-NEXT: movlt r1, r0
-; CHECK-T2DSP-NEXT: movw r0, #32768
-; CHECK-T2DSP-NEXT: cmn.w r1, #32768
-; CHECK-T2DSP-NEXT: movt r0, #65535
-; CHECK-T2DSP-NEXT: it gt
-; CHECK-T2DSP-NEXT: movgt r0, r1
+; CHECK-T2DSP-NEXT: qadd16 r0, r0, r1
+; CHECK-T2DSP-NEXT: sxth r0, r0
; CHECK-T2DSP-NEXT: bx lr
;
; CHECK-ARM-LABEL: func16:
; CHECK-ARM: @ %bb.0:
; CHECK-ARM-NEXT: smulbb r1, r1, r2
-; CHECK-ARM-NEXT: sxtah r0, r0, r1
-; CHECK-ARM-NEXT: movw r1, #32767
-; CHECK-ARM-NEXT: cmp r0, r1
-; CHECK-ARM-NEXT: movlt r1, r0
-; CHECK-ARM-NEXT: movw r0, #32768
-; CHECK-ARM-NEXT: movt r0, #65535
-; CHECK-ARM-NEXT: cmn r1, #32768
-; CHECK-ARM-NEXT: movgt r0, r1
+; CHECK-ARM-NEXT: qadd16 r0, r0, r1
+; CHECK-ARM-NEXT: sxth r0, r0
; CHECK-ARM-NEXT: bx lr
%a = mul i16 %y, %z
%tmp = call i16 @llvm.sadd.sat.i16(i16 %x, i16 %a)
@@ -323,23 +309,15 @@ define signext i8 @func8(i8 signext %x, i8 signext %y, i8 signext %z) nounwind {
; CHECK-T2DSP-LABEL: func8:
; CHECK-T2DSP: @ %bb.0:
; CHECK-T2DSP-NEXT: muls r1, r2, r1
-; CHECK-T2DSP-NEXT: sxtab r0, r0, r1
-; CHECK-T2DSP-NEXT: cmp r0, #127
-; CHECK-T2DSP-NEXT: it ge
-; CHECK-T2DSP-NEXT: movge r0, #127
-; CHECK-T2DSP-NEXT: cmn.w r0, #128
-; CHECK-T2DSP-NEXT: it le
-; CHECK-T2DSP-NEXT: mvnle r0, #127
+; CHECK-T2DSP-NEXT: qadd8 r0, r0, r1
+; CHECK-T2DSP-NEXT: sxtb r0, r0
; CHECK-T2DSP-NEXT: bx lr
;
; CHECK-ARM-LABEL: func8:
; CHECK-ARM: @ %bb.0:
; CHECK-ARM-NEXT: smulbb r1, r1, r2
-; CHECK-ARM-NEXT: sxtab r0, r0, r1
-; CHECK-ARM-NEXT: cmp r0, #127
-; CHECK-ARM-NEXT: movge r0, #127
-; CHECK-ARM-NEXT: cmn r0, #128
-; CHECK-ARM-NEXT: mvnle r0, #127
+; CHECK-ARM-NEXT: qadd8 r0, r0, r1
+; CHECK-ARM-NEXT: sxtb r0, r0
; CHECK-ARM-NEXT: bx lr
%a = mul i8 %y, %z
%tmp = call i8 @llvm.sadd.sat.i8(i8 %x, i8 %a)
OpenPOWER on IntegriCloud