1 ; RUN: opt < %s -instsimplify -S | FileCheck %s
3 define i32 @select1(i32 %x, i1 %b) {
4 ; CHECK-LABEL: @select1(
5 %rhs = select i1 %b, i32 %x, i32 1
6 %rem = srem i32 %x, %rhs
11 define i32 @select2(i32 %x, i1 %b) {
12 ; CHECK-LABEL: @select2(
13 %rhs = select i1 %b, i32 %x, i32 1
14 %rem = urem i32 %x, %rhs
19 define i32 @rem1(i32 %x, i32 %n) {
21 ; CHECK-NEXT: %mod = srem i32 %x, %n
22 ; CHECK-NEXT: ret i32 %mod
23 %mod = srem i32 %x, %n
24 %mod1 = srem i32 %mod, %n
28 define i32 @rem2(i32 %x, i32 %n) {
30 ; CHECK-NEXT: %mod = urem i32 %x, %n
31 ; CHECK-NEXT: ret i32 %mod
32 %mod = urem i32 %x, %n
33 %mod1 = urem i32 %mod, %n
37 define i32 @rem3(i32 %x, i32 %n) {
39 ; CHECK-NEXT: %[[srem:.*]] = srem i32 %x, %n
40 ; CHECK-NEXT: %[[urem:.*]] = urem i32 %[[srem]], %n
41 ; CHECK-NEXT: ret i32 %[[urem]]
42 %mod = srem i32 %x, %n
43 %mod1 = urem i32 %mod, %n