Similarly, analyze truncate through multiply.
[llvm.git] / test / Analysis / ScalarEvolution / fold.ll
blob3c1b6ae0fec445f8a1c7c9ad6f08a708096ede72
1 ; RUN: opt -analyze -scalar-evolution %s -S | FileCheck %s
3 define i16 @test1(i8 %x) {
4   %A = zext i8 %x to i12
5   %B = sext i12 %A to i16
6 ; CHECK: zext i8 %x to i16
7   ret i16 %B
10 define i8 @test2(i8 %x) {
11   %A = zext i8 %x to i16
12   %B = add i16 %A, 1025
13   %C = trunc i16 %B to i8
14 ; CHECK: (1 + %x)
15   ret i8 %C
18 define i8 @test3(i8 %x) {
19   %A = zext i8 %x to i16
20   %B = mul i16 %A, 1027
21   %C = trunc i16 %B to i8
22 ; CHECK: (3 * %x)
23   ret i8 %C