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