diff options
Diffstat (limited to 'test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir')
-rw-r--r-- | test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir b/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir index c93e7fa0ec56..9a0877846fc3 100644 --- a/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir +++ b/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir @@ -36,6 +36,7 @@ body: | %0(s32) = COPY %r0 %1(s32) = COPY %r1 ; HWDIV: [[R:%[0-9]+]](s32) = G_SDIV [[X]], [[Y]] + ; SOFT-NOT: G_SDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X]] ; SOFT-DAG: %r1 = COPY [[Y]] @@ -44,6 +45,7 @@ body: | ; SOFT-DEFAULT: BLX $__divsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_SDIV %2(s32) = G_SDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s32) @@ -70,6 +72,7 @@ body: | %0(s32) = COPY %r0 %1(s32) = COPY %r1 ; HWDIV: [[R:%[0-9]+]](s32) = G_UDIV [[X]], [[Y]] + ; SOFT-NOT: G_UDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X]] ; SOFT-DAG: %r1 = COPY [[Y]] @@ -78,6 +81,7 @@ body: | ; SOFT-DEFAULT: BLX $__udivsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_UDIV %2(s32) = G_UDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s32) @@ -106,6 +110,7 @@ body: | %0(s16) = COPY %r0 %1(s16) = COPY %r1 ; HWDIV: [[R32:%[0-9]+]](s32) = G_SDIV [[X32]], [[Y32]] + ; SOFT-NOT: G_SDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X32]] ; SOFT-DAG: %r1 = COPY [[Y32]] @@ -114,7 +119,9 @@ body: | ; SOFT-DEFAULT: BLX $__divsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R32:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_SDIV ; CHECK: [[R:%[0-9]+]](s16) = G_TRUNC [[R32]] + ; SOFT-NOT: G_SDIV %2(s16) = G_SDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s16) @@ -143,6 +150,7 @@ body: | %0(s16) = COPY %r0 %1(s16) = COPY %r1 ; HWDIV: [[R32:%[0-9]+]](s32) = G_UDIV [[X32]], [[Y32]] + ; SOFT-NOT: G_UDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X32]] ; SOFT-DAG: %r1 = COPY [[Y32]] @@ -151,7 +159,9 @@ body: | ; SOFT-DEFAULT: BLX $__udivsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R32:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_UDIV ; CHECK: [[R:%[0-9]+]](s16) = G_TRUNC [[R32]] + ; SOFT-NOT: G_UDIV %2(s16) = G_UDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s16) @@ -180,6 +190,7 @@ body: | %0(s8) = COPY %r0 %1(s8) = COPY %r1 ; HWDIV: [[R32:%[0-9]+]](s32) = G_SDIV [[X32]], [[Y32]] + ; SOFT-NOT: G_SDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X32]] ; SOFT-DAG: %r1 = COPY [[Y32]] @@ -188,7 +199,9 @@ body: | ; SOFT-DEFAULT: BLX $__divsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R32:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_SDIV ; CHECK: [[R:%[0-9]+]](s8) = G_TRUNC [[R32]] + ; SOFT-NOT: G_SDIV %2(s8) = G_SDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s8) @@ -217,6 +230,7 @@ body: | %0(s8) = COPY %r0 %1(s8) = COPY %r1 ; HWDIV: [[R32:%[0-9]+]](s32) = G_UDIV [[X32]], [[Y32]] + ; SOFT-NOT: G_UDIV ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X32]] ; SOFT-DAG: %r1 = COPY [[Y32]] @@ -225,7 +239,9 @@ body: | ; SOFT-DEFAULT: BLX $__udivsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R32:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_UDIV ; CHECK: [[R:%[0-9]+]](s8) = G_TRUNC [[R32]] + ; SOFT-NOT: G_UDIV %2(s8) = G_UDIV %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s8) @@ -254,6 +270,7 @@ body: | ; HWDIV: [[Q:%[0-9]+]](s32) = G_SDIV [[X]], [[Y]] ; HWDIV: [[P:%[0-9]+]](s32) = G_MUL [[Q]], [[Y]] ; HWDIV: [[R:%[0-9]+]](s32) = G_SUB [[X]], [[P]] + ; SOFT-NOT: G_SREM ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X]] ; SOFT-DAG: %r1 = COPY [[Y]] @@ -262,6 +279,7 @@ body: | ; SOFT-DEFAULT: BLX $__modsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_SREM %2(s32) = G_SREM %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s32) @@ -290,6 +308,7 @@ body: | ; HWDIV: [[Q:%[0-9]+]](s32) = G_UDIV [[X]], [[Y]] ; HWDIV: [[P:%[0-9]+]](s32) = G_MUL [[Q]], [[Y]] ; HWDIV: [[R:%[0-9]+]](s32) = G_SUB [[X]], [[P]] + ; SOFT-NOT: G_UREM ; SOFT: ADJCALLSTACKDOWN ; SOFT-DAG: %r0 = COPY [[X]] ; SOFT-DAG: %r1 = COPY [[Y]] @@ -298,6 +317,7 @@ body: | ; SOFT-DEFAULT: BLX $__umodsi3, {{.*}}, implicit %r0, implicit %r1, implicit-def %r0 ; SOFT-DEFAULT: [[R:%[0-9]+]](s32) = COPY %r0 ; SOFT: ADJCALLSTACKUP + ; SOFT-NOT: G_UREM %2(s32) = G_UREM %0, %1 ; CHECK: %r0 = COPY [[R]] %r0 = COPY %2(s32) |