1; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
2
3; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test1'
4; CHECK-NOT: (trunc i{{.*}}ext
5
6define i16 @test1(i8 %x) {
7  %A = sext i8 %x to i32
8  %B = trunc i32 %A to i16
9  ret i16 %B
10}
11
12; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test2'
13; CHECK-NOT: (trunc i{{.*}}ext
14
15define i8 @test2(i16 %x) {
16  %A = sext i16 %x to i32
17  %B = trunc i32 %A to i8
18  ret i8 %B
19}
20
21; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test3'
22; CHECK-NOT: (trunc i{{.*}}ext
23
24define i16 @test3(i16 %x) {
25  %A = sext i16 %x to i32
26  %B = trunc i32 %A to i16
27  ret i16 %B
28}
29
30; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test4'
31; CHECK-NOT: (trunc i{{.*}}ext
32
33define i16 @test4(i8 %x) {
34  %A = zext i8 %x to i32
35  %B = trunc i32 %A to i16
36  ret i16 %B
37}
38
39; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test5'
40; CHECK-NOT: (trunc i{{.*}}ext
41
42define i8 @test5(i16 %x) {
43  %A = zext i16 %x to i32
44  %B = trunc i32 %A to i8
45  ret i8 %B
46}
47
48; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test6'
49; CHECK-NOT: (trunc i{{.*}}ext
50
51define i16 @test6(i16 %x) {
52  %A = zext i16 %x to i32
53  %B = trunc i32 %A to i16
54  ret i16 %B
55}
56