%r = udiv i32 %x, %s
ret i32 %r
}
+
+; PR34063
+; 1 / X !=/== -1
+
+define i1 @sdiv_one_icmpeq_one(i32 %x) {
+; CHECK-LABEL: @sdiv_one_icmpeq_one(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 1
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
+ %A = sdiv i32 1, %x
+ %B = icmp eq i32 %A, 1
+ ret i1 %B
+}
+
+define i1 @sdiv_one_icmpeq_negone(i32 %x) {
+; CHECK-LABEL: @sdiv_one_icmpeq_negone(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], -1
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
+ %A = sdiv i32 1, %x
+ %B = icmp eq i32 %A, -1
+ ret i1 %B
+}
+
+define i1 @udiv_one_icmpeq_one(i32 %x) {
+; CHECK-LABEL: @udiv_one_icmpeq_one(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 1
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
+ %A = udiv i32 1, %x
+ %B = icmp eq i32 %A, 1
+ ret i1 %B
+}
+
+define i1 @udiv_one_icmpne_one(i32 %x) {
+; CHECK-LABEL: @udiv_one_icmpne_one(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], 1
+; CHECK-NEXT: ret i1 [[TMP1]]
+;
+ %A = udiv i32 1, %x
+ %B = icmp ne i32 %A, 1
+ ret i1 %B
+}