blob: a53f75b86faa8699748ca9a3a5f67239c676a3d7 [file] [log] [blame]
Alexandre Isoard405728f2017-09-01 14:59:59 +00001; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
2
3define i8 @foo(i8 %a) {
4; CHECK-LABEL: @foo
5 %t0 = urem i8 %a, 27
6; CHECK: %t0 = urem i8 %a, 27
7; CHECK-NEXT: --> ((-27 * (%a /u 27)) + %a)
8 ret i8 %t0
9}
10
11define i8 @bar(i8 %a) {
12; CHECK-LABEL: @bar
13 %t1 = urem i8 %a, 1
14; CHECK: %t1 = urem i8 %a, 1
15; CHECK-NEXT: --> 0
16 ret i8 %t1
17}
18
19define i8 @baz(i8 %a) {
20; CHECK-LABEL: @baz
21 %t2 = urem i8 %a, 32
22; CHECK: %t2 = urem i8 %a, 32
23; CHECK-NEXT: --> (zext i5 (trunc i8 %a to i5) to i8)
24 ret i8 %t2
25}
26
27define i8 @qux(i8 %a) {
28; CHECK-LABEL: @qux
29 %t3 = urem i8 %a, 2
30; CHECK: %t3 = urem i8 %a, 2
31; CHECK-NEXT: --> (zext i1 (trunc i8 %a to i1) to i8)
32 ret i8 %t3
33}