@@ -723,6 +723,50 @@ define i1 @urem7(i32 %X) {
723
723
ret i1 %B
724
724
}
725
725
726
+ define i1 @urem8 (i8 %X , i8 %Y ) {
727
+ ; CHECK-LABEL: @urem8(
728
+ ; CHECK-NEXT: [[A:%.*]] = urem i8 [[X:%.*]], [[Y:%.*]]
729
+ ; CHECK-NEXT: [[B:%.*]] = icmp ule i8 [[A]], [[X]]
730
+ ; CHECK-NEXT: ret i1 [[B]]
731
+ ;
732
+ %A = urem i8 %X , %Y
733
+ %B = icmp ule i8 %A , %X
734
+ ret i1 %B
735
+ }
736
+
737
+ define i1 @urem9 (i8 %X , i8 %Y ) {
738
+ ; CHECK-LABEL: @urem9(
739
+ ; CHECK-NEXT: [[A:%.*]] = urem i8 [[X:%.*]], [[Y:%.*]]
740
+ ; CHECK-NEXT: [[B:%.*]] = icmp ugt i8 [[A]], [[X]]
741
+ ; CHECK-NEXT: ret i1 [[B]]
742
+ ;
743
+ %A = urem i8 %X , %Y
744
+ %B = icmp ugt i8 %A , %X
745
+ ret i1 %B
746
+ }
747
+
748
+ define i1 @urem10 (i8 %X , i8 %Y ) {
749
+ ; CHECK-LABEL: @urem10(
750
+ ; CHECK-NEXT: [[A:%.*]] = urem i8 [[X:%.*]], [[Y:%.*]]
751
+ ; CHECK-NEXT: [[B:%.*]] = icmp uge i8 [[X]], [[A]]
752
+ ; CHECK-NEXT: ret i1 [[B]]
753
+ ;
754
+ %A = urem i8 %X , %Y
755
+ %B = icmp uge i8 %X , %A
756
+ ret i1 %B
757
+ }
758
+
759
+ define i1 @urem11 (i8 %X , i8 %Y ) {
760
+ ; CHECK-LABEL: @urem11(
761
+ ; CHECK-NEXT: [[A:%.*]] = urem i8 [[X:%.*]], [[Y:%.*]]
762
+ ; CHECK-NEXT: [[B:%.*]] = icmp ult i8 [[X]], [[A]]
763
+ ; CHECK-NEXT: ret i1 [[B]]
764
+ ;
765
+ %A = urem i8 %X , %Y
766
+ %B = icmp ult i8 %X , %A
767
+ ret i1 %B
768
+ }
769
+
726
770
; PR9343 #15
727
771
define i1 @srem2 (i16 %X , i32 %Y ) {
728
772
; CHECK-LABEL: @srem2(
@@ -961,7 +1005,7 @@ define i1 @alloca_compare(i64 %idx) {
961
1005
962
1006
define i1 @alloca_compare_no_null_opt (i64 %idx ) #0 {
963
1007
; CHECK-LABEL: @alloca_compare_no_null_opt(
964
- ; CHECK-NEXT: [[SV:%.*]] = alloca { i32, i32, [124 x i32] }
1008
+ ; CHECK-NEXT: [[SV:%.*]] = alloca { i32, i32, [124 x i32] }, align 8
965
1009
; CHECK-NEXT: [[CMP:%.*]] = getelementptr inbounds { i32, i32, [124 x i32] }, { i32, i32, [124 x i32] }* [[SV]], i32 0, i32 2, i64 [[IDX:%.*]]
966
1010
; CHECK-NEXT: [[X:%.*]] = icmp eq i32* [[CMP]], null
967
1011
; CHECK-NEXT: ret i1 [[X]]
@@ -995,7 +1039,7 @@ unreachableblock:
995
1039
996
1040
define i1 @alloca_argument_compare (i64* %arg ) {
997
1041
; CHECK-LABEL: @alloca_argument_compare(
998
- ; CHECK-NEXT: [[ALLOC:%.*]] = alloca i64
1042
+ ; CHECK-NEXT: [[ALLOC:%.*]] = alloca i64, align 8
999
1043
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64* [[ARG:%.*]], [[ALLOC]]
1000
1044
; CHECK-NEXT: ret i1 [[CMP]]
1001
1045
;
@@ -1008,7 +1052,7 @@ define i1 @alloca_argument_compare(i64* %arg) {
1008
1052
1009
1053
define i1 @alloca_argument_compare_swapped (i64* %arg ) {
1010
1054
; CHECK-LABEL: @alloca_argument_compare_swapped(
1011
- ; CHECK-NEXT: [[ALLOC:%.*]] = alloca i64
1055
+ ; CHECK-NEXT: [[ALLOC:%.*]] = alloca i64, align 8
1012
1056
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64* [[ALLOC]], [[ARG:%.*]]
1013
1057
; CHECK-NEXT: ret i1 [[CMP]]
1014
1058
;
0 commit comments