blob: df3f659b782e4962cdd0cec9754b93cbee98276d [file] [log] [blame]
Sanjay Patel69632442016-03-25 20:12:25 +00001; NOTE: Assertions have been autogenerated by update_test_checks.py
Duncan Sandsa3e36992011-05-02 16:27:02 +00002; RUN: opt < %s -instsimplify -S | FileCheck %s
3
4define i32 @select1(i32 %x, i1 %b) {
Stephen Linc1c7a132013-07-14 01:42:54 +00005; CHECK-LABEL: @select1(
Sanjay Patel69632442016-03-25 20:12:25 +00006; CHECK: ret i32 0
7;
Duncan Sandsa3e36992011-05-02 16:27:02 +00008 %rhs = select i1 %b, i32 %x, i32 1
9 %rem = srem i32 %x, %rhs
10 ret i32 %rem
Duncan Sandsa3e36992011-05-02 16:27:02 +000011}
12
13define i32 @select2(i32 %x, i1 %b) {
Stephen Linc1c7a132013-07-14 01:42:54 +000014; CHECK-LABEL: @select2(
Sanjay Patel69632442016-03-25 20:12:25 +000015; CHECK: ret i32 0
16;
Duncan Sandsa3e36992011-05-02 16:27:02 +000017 %rhs = select i1 %b, i32 %x, i32 1
18 %rem = urem i32 %x, %rhs
19 ret i32 %rem
Duncan Sandsa3e36992011-05-02 16:27:02 +000020}
David Majnemerac717f02014-09-17 03:34:34 +000021
David Majnemerb435a422014-09-17 04:16:35 +000022define i32 @rem1(i32 %x, i32 %n) {
23; CHECK-LABEL: @rem1(
Sanjay Patel69632442016-03-25 20:12:25 +000024; CHECK: [[MOD:%.*]] = srem i32 %x, %n
25; CHECK-NEXT: ret i32 [[MOD]]
26;
David Majnemerac717f02014-09-17 03:34:34 +000027 %mod = srem i32 %x, %n
28 %mod1 = srem i32 %mod, %n
29 ret i32 %mod1
30}
David Majnemerb435a422014-09-17 04:16:35 +000031
32define i32 @rem2(i32 %x, i32 %n) {
33; CHECK-LABEL: @rem2(
Sanjay Patel69632442016-03-25 20:12:25 +000034; CHECK: [[MOD:%.*]] = urem i32 %x, %n
35; CHECK-NEXT: ret i32 [[MOD]]
36;
David Majnemerb435a422014-09-17 04:16:35 +000037 %mod = urem i32 %x, %n
38 %mod1 = urem i32 %mod, %n
39 ret i32 %mod1
40}
41
42define i32 @rem3(i32 %x, i32 %n) {
43; CHECK-LABEL: @rem3(
Sanjay Patel69632442016-03-25 20:12:25 +000044; CHECK: [[MOD:%.*]] = srem i32 %x, %n
45; CHECK-NEXT: [[MOD1:%.*]] = urem i32 [[MOD]], %n
46; CHECK-NEXT: ret i32 [[MOD1]]
47;
David Majnemerb435a422014-09-17 04:16:35 +000048 %mod = srem i32 %x, %n
49 %mod1 = urem i32 %mod, %n
50 ret i32 %mod1
51}