11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc -mtriple=armv6-eabi %s -o - | FileCheck %s
3- ; RUN: llc -mtriple=thumbv8.1m.main-arm-none-eabi -mattr=+dsp %s -o - | FileCheck %s
2+ ; RUN: llc -mtriple=armv6-eabi %s -o - | FileCheck %s --check-prefixes=CHECK,ARMV6
3+ ; RUN: llc -mtriple=thumbv8.1m.main-arm-none-eabi -mattr=+dsp %s -o - | FileCheck %s --check-prefixes=CHECK,THUMB
44
55define arm_aapcs_vfpcc i32 @usat_lsl (i32 %num ){
66; CHECK-LABEL: usat_lsl:
@@ -25,6 +25,24 @@ entry:
2525}
2626
2727define arm_aapcs_vfpcc i32 @usat_lsl2 (i32 %num ){
28+ ; ARMV6-LABEL: usat_lsl2:
29+ ; ARMV6: @ %bb.0: @ %entry
30+ ; ARMV6-NEXT: lsl r0, r0, #15
31+ ; ARMV6-NEXT: bic r1, r0, r0, asr #31
32+ ; ARMV6-NEXT: mov r0, #255
33+ ; ARMV6-NEXT: orr r0, r0, #32512
34+ ; ARMV6-NEXT: cmp r1, r0
35+ ; ARMV6-NEXT: movlt r0, r1
36+ ; ARMV6-NEXT: bx lr
37+ ;
38+ ; THUMB-LABEL: usat_lsl2:
39+ ; THUMB: @ %bb.0: @ %entry
40+ ; THUMB-NEXT: lsls r0, r0, #15
41+ ; THUMB-NEXT: movw r1, #32767
42+ ; THUMB-NEXT: bic.w r0, r0, r0, asr #31
43+ ; THUMB-NEXT: cmp r0, r1
44+ ; THUMB-NEXT: csel r0, r0, r1, lt
45+ ; THUMB-NEXT: bx lr
2846entry:
2947 %shl = shl nsw i32 %num , 15
3048 %0 = icmp sgt i32 %shl , 0
@@ -35,6 +53,24 @@ entry:
3553}
3654
3755define arm_aapcs_vfpcc i32 @usat_asr2 (i32 %num ){
56+ ; ARMV6-LABEL: usat_asr2:
57+ ; ARMV6: @ %bb.0: @ %entry
58+ ; ARMV6-NEXT: asr r1, r0, #15
59+ ; ARMV6-NEXT: bic r1, r1, r0, asr #31
60+ ; ARMV6-NEXT: mov r0, #255
61+ ; ARMV6-NEXT: orr r0, r0, #32512
62+ ; ARMV6-NEXT: cmp r1, r0
63+ ; ARMV6-NEXT: movlt r0, r1
64+ ; ARMV6-NEXT: bx lr
65+ ;
66+ ; THUMB-LABEL: usat_asr2:
67+ ; THUMB: @ %bb.0: @ %entry
68+ ; THUMB-NEXT: asrs r1, r0, #15
69+ ; THUMB-NEXT: bic.w r0, r1, r0, asr #31
70+ ; THUMB-NEXT: movw r1, #32767
71+ ; THUMB-NEXT: cmp r0, r1
72+ ; THUMB-NEXT: csel r0, r0, r1, lt
73+ ; THUMB-NEXT: bx lr
3874entry:
3975 %shr = ashr i32 %num , 15
4076 %0 = icmp sgt i32 %shr , 0
0 commit comments