blob: cf37371939d5e410bbf41a013dc90eb153dd3dcb [file] [log] [blame]
Justin Lebarb3269042018-06-14 17:13:35 +00001; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
2
3; Check that we convert
4; trunc(C * a) -> trunc(C) * trunc(a)
5; if C is a constant.
6; CHECK-LABEL: @trunc_of_mul
7define i8 @trunc_of_mul(i32 %a) {
8 %b = mul i32 %a, 100
9 ; CHECK: %c
10 ; CHECK-NEXT: --> (100 * (trunc i32 %a to i8))
11 %c = trunc i32 %b to i8
12 ret i8 %c
13}
14
15; Check that we convert
16; trunc(C + a) -> trunc(C) + trunc(a)
17; if C is a constant.
18; CHECK-LABEL: @trunc_of_add
19define i8 @trunc_of_add(i32 %a) {
20 %b = add i32 %a, 100
21 ; CHECK: %c
22 ; CHECK-NEXT: --> (100 + (trunc i32 %a to i8))
23 %c = trunc i32 %b to i8
24 ret i8 %c
25}