22; RUN: llc -mtriple=armv7a < %s | FileCheck %s --check-prefix=ARM
33; RUN: llc -mtriple=armv6m < %s | FileCheck %s --check-prefix=THUMB
44; RUN: llc -mtriple=armv7m < %s | FileCheck %s --check-prefix=THUMB2
5+ ; RUN: llc -mtriple=thumbv8.1m.main < %s | FileCheck %s --check-prefix=THUMBV8
56
67declare i8 @llvm.smax.i8 (i8 %a , i8 %b ) readnone
78
@@ -24,6 +25,12 @@ define i8 @smaxi8_zero(i8 %a) {
2425; THUMB2-NEXT: sxtb r0, r0
2526; THUMB2-NEXT: bic.w r0, r0, r0, asr #31
2627; THUMB2-NEXT: bx lr
28+ ;
29+ ; THUMBV8-LABEL: smaxi8_zero:
30+ ; THUMBV8: @ %bb.0:
31+ ; THUMBV8-NEXT: sxtb r0, r0
32+ ; THUMBV8-NEXT: bic.w r0, r0, r0, asr #31
33+ ; THUMBV8-NEXT: bx lr
2734 %c = call i8 @llvm.smax.i8 (i8 %a , i8 0 )
2835 ret i8 %c
2936}
@@ -49,6 +56,12 @@ define i16 @smaxi16_zero(i16 %a) {
4956; THUMB2-NEXT: sxth r0, r0
5057; THUMB2-NEXT: bic.w r0, r0, r0, asr #31
5158; THUMB2-NEXT: bx lr
59+ ;
60+ ; THUMBV8-LABEL: smaxi16_zero:
61+ ; THUMBV8: @ %bb.0:
62+ ; THUMBV8-NEXT: sxth r0, r0
63+ ; THUMBV8-NEXT: bic.w r0, r0, r0, asr #31
64+ ; THUMBV8-NEXT: bx lr
5265 %c = call i16 @llvm.smax.i16 (i16 %a , i16 0 )
5366 ret i16 %c
5467}
@@ -71,6 +84,11 @@ define i32 @smaxi32_zero(i32 %a) {
7184; THUMB2: @ %bb.0:
7285; THUMB2-NEXT: bic.w r0, r0, r0, asr #31
7386; THUMB2-NEXT: bx lr
87+ ;
88+ ; THUMBV8-LABEL: smaxi32_zero:
89+ ; THUMBV8: @ %bb.0:
90+ ; THUMBV8-NEXT: bic.w r0, r0, r0, asr #31
91+ ; THUMBV8-NEXT: bx lr
7492 %c = call i32 @llvm.smax.i32 (i32 %a , i32 0 )
7593 ret i32 %c
7694}
@@ -98,6 +116,12 @@ define i8 @smini8_zero(i8 %a) {
98116; THUMB2-NEXT: sxtb r0, r0
99117; THUMB2-NEXT: and.w r0, r0, r0, asr #31
100118; THUMB2-NEXT: bx lr
119+ ;
120+ ; THUMBV8-LABEL: smini8_zero:
121+ ; THUMBV8: @ %bb.0:
122+ ; THUMBV8-NEXT: sxtb r0, r0
123+ ; THUMBV8-NEXT: and.w r0, r0, r0, asr #31
124+ ; THUMBV8-NEXT: bx lr
101125 %c = call i8 @llvm.smin.i8 (i8 %a , i8 0 )
102126 ret i8 %c
103127}
@@ -123,6 +147,12 @@ define i16 @smini16_zero(i16 %a) {
123147; THUMB2-NEXT: sxth r0, r0
124148; THUMB2-NEXT: and.w r0, r0, r0, asr #31
125149; THUMB2-NEXT: bx lr
150+ ;
151+ ; THUMBV8-LABEL: smini16_zero:
152+ ; THUMBV8: @ %bb.0:
153+ ; THUMBV8-NEXT: sxth r0, r0
154+ ; THUMBV8-NEXT: and.w r0, r0, r0, asr #31
155+ ; THUMBV8-NEXT: bx lr
126156 %c = call i16 @llvm.smin.i16 (i16 %a , i16 0 )
127157 ret i16 %c
128158}
@@ -145,6 +175,11 @@ define i32 @smini32_zero(i32 %a) {
145175; THUMB2: @ %bb.0:
146176; THUMB2-NEXT: and.w r0, r0, r0, asr #31
147177; THUMB2-NEXT: bx lr
178+ ;
179+ ; THUMBV8-LABEL: smini32_zero:
180+ ; THUMBV8: @ %bb.0:
181+ ; THUMBV8-NEXT: and.w r0, r0, r0, asr #31
182+ ; THUMBV8-NEXT: bx lr
148183 %c = call i32 @llvm.smin.i32 (i32 %a , i32 0 )
149184 ret i32 %c
150185}
0 commit comments