@@ -709,3 +709,51 @@ define i1 @pointer_icmp_aligned_with_offset_negative(ptr align 8 %a, ptr align 8
709
709
%cmp = icmp eq ptr %gep , %a2
710
710
ret i1 %cmp
711
711
}
712
+
713
+ define i1 @gep_diff_base_same_indices (ptr %x , ptr %y , i64 %z ) {
714
+ ; CHECK-LABEL: @gep_diff_base_same_indices(
715
+ ; CHECK-NEXT: [[X:%.*]] = getelementptr i8, ptr [[X1:%.*]], i64 [[Z:%.*]]
716
+ ; CHECK-NEXT: [[Y:%.*]] = getelementptr i8, ptr [[Y1:%.*]], i64 [[Z]]
717
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult ptr [[X]], [[Y]]
718
+ ; CHECK-NEXT: ret i1 [[CMP]]
719
+ ;
720
+ %gep1 = getelementptr i8 , ptr %x , i64 %z
721
+ %gep2 = getelementptr i8 , ptr %y , i64 %z
722
+ %cmp = icmp ult ptr %gep1 , %gep2
723
+ ret i1 %cmp
724
+ }
725
+
726
+ define i1 @gep_diff_base_same_indices_nuw (ptr %x , ptr %y , i64 %z ) {
727
+ ; CHECK-LABEL: @gep_diff_base_same_indices_nuw(
728
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult ptr [[X:%.*]], [[Y:%.*]]
729
+ ; CHECK-NEXT: ret i1 [[CMP]]
730
+ ;
731
+ %gep1 = getelementptr nuw i8 , ptr %x , i64 %z
732
+ %gep2 = getelementptr nuw i8 , ptr %y , i64 %z
733
+ %cmp = icmp ult ptr %gep1 , %gep2
734
+ ret i1 %cmp
735
+ }
736
+
737
+ define i1 @gep_diff_base_same_indices_nusw (ptr %x , ptr %y , i64 %z ) {
738
+ ; CHECK-LABEL: @gep_diff_base_same_indices_nusw(
739
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult ptr [[X:%.*]], [[Y:%.*]]
740
+ ; CHECK-NEXT: ret i1 [[CMP]]
741
+ ;
742
+ %gep1 = getelementptr nusw i8 , ptr %x , i64 %z
743
+ %gep2 = getelementptr nusw i8 , ptr %y , i64 %z
744
+ %cmp = icmp ult ptr %gep1 , %gep2
745
+ ret i1 %cmp
746
+ }
747
+
748
+ define i1 @gep_diff_base_same_indices_nuw_nusw (ptr %x , ptr %y , i64 %z ) {
749
+ ; CHECK-LABEL: @gep_diff_base_same_indices_nuw_nusw(
750
+ ; CHECK-NEXT: [[X:%.*]] = getelementptr nuw i8, ptr [[X1:%.*]], i64 [[Z:%.*]]
751
+ ; CHECK-NEXT: [[Y:%.*]] = getelementptr nusw i8, ptr [[Y1:%.*]], i64 [[Z]]
752
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult ptr [[X]], [[Y]]
753
+ ; CHECK-NEXT: ret i1 [[CMP]]
754
+ ;
755
+ %gep1 = getelementptr nuw i8 , ptr %x , i64 %z
756
+ %gep2 = getelementptr nusw i8 , ptr %y , i64 %z
757
+ %cmp = icmp ult ptr %gep1 , %gep2
758
+ ret i1 %cmp
759
+ }
0 commit comments