@@ -709,3 +709,51 @@ define i1 @pointer_icmp_aligned_with_offset_negative(ptr align 8 %a, ptr align 8
709709 %cmp = icmp eq ptr %gep , %a2
710710 ret i1 %cmp
711711}
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