[InstCombine] Shift amount reassociation in bittest: trunc-of-lshr (PR42399)
[llvm-complete.git] / test / Analysis / ScalarEvolution / urem-0.ll
bloba53f75b86faa8699748ca9a3a5f67239c676a3d7
1 ; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
3 define 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
11 define 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
19 define 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
27 define 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