+
+; CHECK-LABEL: 'test_icmp1'
+; CHECK-DAG: DemandedBits: 0x1 for %3 = icmp eq i32 %1, %2
+; CHECK-DAG: DemandedBits: 0xFFF for %1 = and i32 %a, 255
+; CHECK-DAG: DemandedBits: 0xFFF for %2 = shl i32 %1, 4
+define i1 @test_icmp1(i32 %a, i32 %b) {
+ %1 = and i32 %a, 255
+ %2 = shl i32 %1, 4
+ %3 = icmp eq i32 %1, %2
+ ret i1 %3
+}
+
+; CHECK-LABEL: 'test_icmp2'
+; CHECK-DAG: DemandedBits: 0x1 for %3 = icmp eq i32 %1, %2
+; CHECK-DAG: DemandedBits: 0xFF for %1 = and i32 %a, 255
+; CHECK-DAG: DemandedBits: 0xF for %2 = ashr i32 %1, 4
+define i1 @test_icmp2(i32 %a, i32 %b) {
+ %1 = and i32 %a, 255
+ %2 = ashr i32 %1, 4
+ %3 = icmp eq i32 %1, %2
+ ret i1 %3
+}