In some rare cases, the register allocator can spill registers but end up not utilizi...
[llvm/msp430.git] / test / Analysis / ScalarEvolution / 2009-04-22-TruncCast.ll
blobc23f0f0ef1d843959daa10817b75d00685838158
1 ; RUN: llvm-as < %s | opt -analyze -scalar-evolution | grep {(trunc i} | not grep ext
3 define i16 @test1(i8 %x) {
4   %A = sext i8 %x to i32
5   %B = trunc i32 %A to i16
6   ret i16 %B
9 define i8 @test2(i16 %x) {
10   %A = sext i16 %x to i32
11   %B = trunc i32 %A to i8
12   ret i8 %B
15 define i16 @test3(i16 %x) {
16   %A = sext i16 %x to i32
17   %B = trunc i32 %A to i16
18   ret i16 %B
21 define i16 @test4(i8 %x) {
22   %A = zext i8 %x to i32
23   %B = trunc i32 %A to i16
24   ret i16 %B
27 define i8 @test5(i16 %x) {
28   %A = zext i16 %x to i32
29   %B = trunc i32 %A to i8
30   ret i8 %B
33 define i16 @test6(i16 %x) {
34   %A = zext i16 %x to i32
35   %B = trunc i32 %A to i16
36   ret i16 %B