• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -verify-machineinstrs | FileCheck %s
2;
3; Test that a def operand of super-reg is not dropped during post RA pseudo
4; expansion in expandZExtPseudo().
5
6define void @fun_llvm_stress_reduced(i8*, i32*, i64*, i32) {
7; CHECK: .text
8BB:
9  %A = alloca i32
10  %Sl24 = select i1 undef, i32* %1, i32* %1
11  %L26 = load i16, i16* undef
12  %L32 = load i32, i32* %Sl24
13  br label %CF847
14
15CF847:                                            ; preds = %CF878, %BB
16  %L61 = load i16, i16* undef
17  br label %CF878
18
19CF878:                                            ; preds = %CF847
20  %PC66 = bitcast i32* %Sl24 to double*
21  %Sl67 = select i1 undef, <2 x i32> undef, <2 x i32> undef
22  %Cmp68 = icmp ugt i32 undef, %3
23  br i1 %Cmp68, label %CF847, label %CF863
24
25CF863:                                            ; preds = %CF878
26  %L84 = load i16, i16* undef
27  br label %CF825
28
29CF825:                                            ; preds = %CF825, %CF863
30  %Sl105 = select i1 undef, i1 undef, i1 undef
31  br i1 %Sl105, label %CF825, label %CF856
32
33CF856:                                            ; preds = %CF856, %CF825
34  %Cmp114 = icmp ult i16 -24837, %L61
35  br i1 %Cmp114, label %CF856, label %CF875
36
37CF875:                                            ; preds = %CF856
38  %Shuff124 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> <i32 1, i32 3>
39  %PC126 = bitcast i32* %A to i64*
40  br label %CF827
41
42CF827:                                            ; preds = %CF923, %CF911, %CF875
43  %Sl142 = select i1 undef, i64 undef, i64 -1
44  %B148 = sdiv i32 409071, 409071
45  %E153 = extractelement <2 x i32> %Shuff124, i32 1
46  br label %CF911
47
48CF911:                                            ; preds = %CF827
49  br i1 undef, label %CF827, label %CF867
50
51CF867:                                            ; preds = %CF911
52  br label %CF870
53
54CF870:                                            ; preds = %CF870, %CF867
55  store i8 0, i8* %0
56  %FC176 = fptoui double undef to i1
57  br i1 %FC176, label %CF870, label %CF923
58
59CF923:                                            ; preds = %CF870
60  %L179 = load i16, i16* undef
61  %Sl191 = select i1 undef, i64* %PC126, i64* %PC126
62  br i1 false, label %CF827, label %CF828
63
64CF828:                                            ; preds = %CF905, %CF923
65  %B205 = urem i16 -7553, undef
66  %E209 = extractelement <2 x i32> %Sl67, i32 1
67  %Cmp215 = icmp ugt i16 %L179, 0
68  br label %CF905
69
70CF905:                                            ; preds = %CF828
71  %E231 = extractelement <4 x i1> undef, i32 1
72  br i1 %E231, label %CF828, label %CF829
73
74CF829:                                            ; preds = %CF909, %CF829, %CF905
75  %B234 = udiv i16 %L26, %L84
76  br i1 undef, label %CF829, label %CF894
77
78CF894:                                            ; preds = %CF894, %CF829
79  store i64 %Sl142, i64* %Sl191
80  %Sl241 = select i1 %Cmp114, i1 false, i1 %Cmp215
81  br i1 %Sl241, label %CF894, label %CF907
82
83CF907:                                            ; preds = %CF894
84  %B247 = udiv i32 0, %E153
85  %PC248 = bitcast i64* %2 to i8*
86  br label %CF909
87
88CF909:                                            ; preds = %CF907
89  store i1 %FC176, i1* undef
90  %Cmp263 = icmp ugt i1 undef, %Sl241
91  br i1 %Cmp263, label %CF829, label %CF830
92
93CF830:                                            ; preds = %CF909
94  %B304 = urem i16 %L84, %B205
95  %I311 = insertelement <2 x i32> %Shuff124, i32 %B247, i32 1
96  store i8 0, i8* %0
97  %Sl373 = select i1 %Cmp68, i32 0, i32 %E153
98  br label %CF833
99
100CF833:                                            ; preds = %CF880, %CF830
101  br label %CF880
102
103CF880:                                            ; preds = %CF833
104  %Cmp412 = icmp ne i16 %B234, -18725
105  br i1 %Cmp412, label %CF833, label %CF865
106
107CF865:                                            ; preds = %CF880
108  store double 0.000000e+00, double* %PC66
109  br label %CF860
110
111CF860:                                            ; preds = %CF860, %CF865
112  store i8 0, i8* %PC248
113  %Cmp600 = icmp sge i32 %B148, undef
114  br i1 %Cmp600, label %CF860, label %CF913
115
116CF913:                                            ; preds = %CF860
117  store i32 %E209, i32* undef
118  store i32 %Sl373, i32* undef
119  %Cmp771 = icmp ule i32 undef, %L32
120  br label %CF842
121
122CF842:                                            ; preds = %CF925, %CF913
123  br label %CF925
124
125CF925:                                            ; preds = %CF842
126  %Cmp778 = icmp sgt i1 %Cmp771, %Sl241
127  br i1 %Cmp778, label %CF842, label %CF898
128
129CF898:                                            ; preds = %CF925
130  %Sl785 = select i1 %Cmp600, i16 undef, i16 %B304
131  unreachable
132}
133