[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Analysis / CostModel / AArch64 / cast.ll
blob4f82add71d5bc254cbe7ea36c26c1627bd507295
1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2 ; RUN: opt -cost-model -analyze -mtriple=aarch64-none-linux-gnueabi %s -o - | FileCheck --check-prefixes=CHECK,NOFP16 %s
3 ; RUN: opt -cost-model -analyze -mtriple=aarch64-none-linux-gnueabi -mattr=+fullfp16 %s -o - | FileCheck --check-prefixes=CHECK,FULLFP16 %s
5 define i32 @casts_no_users() {
6 ; CHECK-LABEL: 'casts_no_users'
7 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r0 = sext i1 undef to i8
8 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r1 = zext i1 undef to i8
9 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r2 = sext i1 undef to i16
10 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r3 = zext i1 undef to i16
11 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r4 = sext i1 undef to i32
12 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r5 = zext i1 undef to i32
13 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r6 = sext i1 undef to i64
14 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r7 = zext i1 undef to i64
15 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r8 = trunc i8 undef to i1
16 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r9 = sext i8 undef to i16
17 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r10 = zext i8 undef to i16
18 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r11 = sext i8 undef to i32
19 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r12 = zext i8 undef to i32
20 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r13 = sext i8 undef to i64
21 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r14 = zext i8 undef to i64
22 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r15 = trunc i16 undef to i1
23 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r16 = trunc i16 undef to i8
24 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r17 = sext i16 undef to i32
25 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r18 = zext i16 undef to i32
26 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r19 = sext i16 undef to i64
27 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r20 = zext i16 undef to i64
28 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r21 = trunc i32 undef to i1
29 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r22 = trunc i32 undef to i8
30 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r23 = trunc i32 undef to i16
31 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r24 = sext i32 undef to i64
32 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r25 = zext i32 undef to i64
33 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r26 = trunc i64 undef to i1
34 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r27 = trunc i64 undef to i8
35 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r28 = trunc i64 undef to i16
36 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r29 = trunc i64 undef to i32
37 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui float undef to i1
38 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi float undef to i1
39 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui float undef to i8
40 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi float undef to i8
41 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui float undef to i16
42 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi float undef to i16
43 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui float undef to i32
44 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi float undef to i32
45 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui float undef to i64
46 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi float undef to i64
47 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r40 = fptoui double undef to i1
48 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r41 = fptosi double undef to i1
49 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r42 = fptoui double undef to i8
50 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r43 = fptosi double undef to i8
51 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r44 = fptoui double undef to i16
52 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r45 = fptosi double undef to i16
53 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r46 = fptoui double undef to i32
54 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r47 = fptosi double undef to i32
55 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r48 = fptoui double undef to i64
56 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r49 = fptosi double undef to i64
57 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r50 = sitofp i1 undef to float
58 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r51 = uitofp i1 undef to float
59 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r52 = sitofp i1 undef to double
60 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r53 = uitofp i1 undef to double
61 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r54 = sitofp i8 undef to float
62 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r55 = uitofp i8 undef to float
63 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r56 = sitofp i8 undef to double
64 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r57 = uitofp i8 undef to double
65 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r58 = sitofp i16 undef to float
66 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r59 = uitofp i16 undef to float
67 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r60 = sitofp i16 undef to double
68 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r61 = uitofp i16 undef to double
69 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r62 = sitofp i32 undef to float
70 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r63 = uitofp i32 undef to float
71 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r64 = sitofp i32 undef to double
72 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r65 = uitofp i32 undef to double
73 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r66 = sitofp i64 undef to float
74 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r67 = uitofp i64 undef to float
75 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r68 = sitofp i64 undef to double
76 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r69 = uitofp i64 undef to double
77 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %q70 = sext <4 x i8> undef to <4 x i32>
78 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %q71 = sext <8 x i8> undef to <8 x i16>
79 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %s70 = sext <4 x i8> undef to <4 x i32>
80 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r70 = sext <8 x i8> undef to <8 x i32>
81 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %r71 = sext <16 x i8> undef to <16 x i32>
82 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %q72 = zext <4 x i8> undef to <4 x i32>
83 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %q73 = zext <8 x i8> undef to <8 x i16>
84 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %s72 = zext <4 x i8> undef to <4 x i32>
85 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r72 = zext <8 x i8> undef to <8 x i32>
86 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %r73 = zext <16 x i8> undef to <16 x i32>
87 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %rext_0 = sext <8 x i8> undef to <8 x i64>
88 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %rext_1 = zext <8 x i8> undef to <8 x i64>
89 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %rext_2 = sext <8 x i16> undef to <8 x i64>
90 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %rext_3 = zext <8 x i16> undef to <8 x i64>
91 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %rext_4 = sext <4 x i16> undef to <4 x i64>
92 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %rext_5 = zext <4 x i16> undef to <4 x i64>
93 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_6 = sext <2 x i8> undef to <2 x i64>
94 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_7 = zext <2 x i8> undef to <2 x i64>
95 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_8 = sext <2 x i16> undef to <2 x i64>
96 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_9 = zext <2 x i16> undef to <2 x i64>
97 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_a = sext <2 x i32> undef to <2 x i64>
98 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %rext_b = zext <2 x i32> undef to <2 x i64>
99 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r74 = trunc <8 x i32> undef to <8 x i8>
100 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %r75 = trunc <16 x i32> undef to <16 x i8>
101 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r80 = fptrunc double undef to float
102 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r81 = fptrunc <2 x double> undef to <2 x float>
103 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r82 = fptrunc <4 x double> undef to <4 x float>
104 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %r83 = fptrunc <8 x double> undef to <8 x float>
105 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %r84 = fptrunc <16 x double> undef to <16 x float>
106 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r85 = fpext float undef to double
107 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r86 = fpext <2 x float> undef to <2 x double>
108 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r87 = fpext <4 x float> undef to <4 x double>
109 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %r88 = fpext <8 x float> undef to <8 x double>
110 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %r89 = fpext <16 x float> undef to <16 x double>
111 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x float> undef to <2 x i1>
112 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x float> undef to <2 x i1>
113 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x float> undef to <2 x i8>
114 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x float> undef to <2 x i8>
115 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x float> undef to <2 x i16>
116 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x float> undef to <2 x i16>
117 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x float> undef to <2 x i32>
118 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x float> undef to <2 x i32>
119 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r98 = fptoui <2 x float> undef to <2 x i64>
120 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r99 = fptosi <2 x float> undef to <2 x i64>
121 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r100 = fptoui <2 x double> undef to <2 x i1>
122 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r101 = fptosi <2 x double> undef to <2 x i1>
123 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r102 = fptoui <2 x double> undef to <2 x i8>
124 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r103 = fptosi <2 x double> undef to <2 x i8>
125 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r104 = fptoui <2 x double> undef to <2 x i16>
126 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r105 = fptosi <2 x double> undef to <2 x i16>
127 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r106 = fptoui <2 x double> undef to <2 x i32>
128 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r107 = fptosi <2 x double> undef to <2 x i32>
129 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r108 = fptoui <2 x double> undef to <2 x i64>
130 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r109 = fptosi <2 x double> undef to <2 x i64>
131 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %r110 = fptoui <4 x float> undef to <4 x i1>
132 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %r111 = fptosi <4 x float> undef to <4 x i1>
133 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r112 = fptoui <4 x float> undef to <4 x i8>
134 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r113 = fptosi <4 x float> undef to <4 x i8>
135 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r114 = fptoui <4 x float> undef to <4 x i16>
136 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r115 = fptosi <4 x float> undef to <4 x i16>
137 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r116 = fptoui <4 x float> undef to <4 x i32>
138 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r117 = fptosi <4 x float> undef to <4 x i32>
139 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r118 = fptoui <4 x float> undef to <4 x i64>
140 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r119 = fptosi <4 x float> undef to <4 x i64>
141 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %r120 = fptoui <4 x double> undef to <4 x i1>
142 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %r121 = fptosi <4 x double> undef to <4 x i1>
143 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r122 = fptoui <4 x double> undef to <4 x i8>
144 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r123 = fptosi <4 x double> undef to <4 x i8>
145 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r124 = fptoui <4 x double> undef to <4 x i16>
146 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r125 = fptosi <4 x double> undef to <4 x i16>
147 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r126 = fptoui <4 x double> undef to <4 x i32>
148 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r127 = fptosi <4 x double> undef to <4 x i32>
149 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r128 = fptoui <4 x double> undef to <4 x i64>
150 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r129 = fptosi <4 x double> undef to <4 x i64>
151 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 45 for instruction: %r130 = fptoui <8 x float> undef to <8 x i1>
152 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 45 for instruction: %r131 = fptosi <8 x float> undef to <8 x i1>
153 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r132 = fptoui <8 x float> undef to <8 x i8>
154 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r133 = fptosi <8 x float> undef to <8 x i8>
155 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r134 = fptoui <8 x float> undef to <8 x i16>
156 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r135 = fptosi <8 x float> undef to <8 x i16>
157 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r136 = fptoui <8 x float> undef to <8 x i32>
158 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r137 = fptosi <8 x float> undef to <8 x i32>
159 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r138 = fptoui <8 x float> undef to <8 x i64>
160 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r139 = fptosi <8 x float> undef to <8 x i64>
161 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 35 for instruction: %r140 = fptoui <8 x double> undef to <8 x i1>
162 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 35 for instruction: %r141 = fptosi <8 x double> undef to <8 x i1>
163 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r142 = fptoui <8 x double> undef to <8 x i8>
164 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r143 = fptosi <8 x double> undef to <8 x i8>
165 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r144 = fptoui <8 x double> undef to <8 x i16>
166 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r145 = fptosi <8 x double> undef to <8 x i16>
167 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r146 = fptoui <8 x double> undef to <8 x i32>
168 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r147 = fptosi <8 x double> undef to <8 x i32>
169 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r148 = fptoui <8 x double> undef to <8 x i64>
170 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r149 = fptosi <8 x double> undef to <8 x i64>
171 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 91 for instruction: %r150 = fptoui <16 x float> undef to <16 x i1>
172 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 91 for instruction: %r151 = fptosi <16 x float> undef to <16 x i1>
173 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r152 = fptoui <16 x float> undef to <16 x i8>
174 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %r153 = fptosi <16 x float> undef to <16 x i8>
175 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r154 = fptoui <16 x float> undef to <16 x i16>
176 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r155 = fptosi <16 x float> undef to <16 x i16>
177 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r156 = fptoui <16 x float> undef to <16 x i32>
178 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r157 = fptosi <16 x float> undef to <16 x i32>
179 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r158 = fptoui <16 x float> undef to <16 x i64>
180 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r159 = fptosi <16 x float> undef to <16 x i64>
181 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 71 for instruction: %r160 = fptoui <16 x double> undef to <16 x i1>
182 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 71 for instruction: %r161 = fptosi <16 x double> undef to <16 x i1>
183 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %r162 = fptoui <16 x double> undef to <16 x i8>
184 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 23 for instruction: %r163 = fptosi <16 x double> undef to <16 x i8>
185 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %r164 = fptoui <16 x double> undef to <16 x i16>
186 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %r165 = fptosi <16 x double> undef to <16 x i16>
187 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r166 = fptoui <16 x double> undef to <16 x i32>
188 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r167 = fptosi <16 x double> undef to <16 x i32>
189 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r168 = fptoui <16 x double> undef to <16 x i64>
190 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r169 = fptosi <16 x double> undef to <16 x i64>
191 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r170 = uitofp <2 x i1> undef to <2 x float>
192 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r171 = sitofp <2 x i1> undef to <2 x float>
193 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r172 = uitofp <2 x i8> undef to <2 x float>
194 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r173 = sitofp <2 x i8> undef to <2 x float>
195 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r174 = uitofp <2 x i16> undef to <2 x float>
196 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r175 = sitofp <2 x i16> undef to <2 x float>
197 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r176 = uitofp <2 x i32> undef to <2 x float>
198 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r177 = sitofp <2 x i32> undef to <2 x float>
199 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r178 = uitofp <2 x i64> undef to <2 x float>
200 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r179 = sitofp <2 x i64> undef to <2 x float>
201 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r180 = uitofp <2 x i1> undef to <2 x double>
202 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r181 = sitofp <2 x i1> undef to <2 x double>
203 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r182 = uitofp <2 x i8> undef to <2 x double>
204 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r183 = sitofp <2 x i8> undef to <2 x double>
205 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r184 = uitofp <2 x i16> undef to <2 x double>
206 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r185 = sitofp <2 x i16> undef to <2 x double>
207 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r186 = uitofp <2 x i32> undef to <2 x double>
208 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r187 = sitofp <2 x i32> undef to <2 x double>
209 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r188 = uitofp <2 x i64> undef to <2 x double>
210 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r189 = sitofp <2 x i64> undef to <2 x double>
211 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r190 = uitofp <4 x i1> undef to <4 x float>
212 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r191 = sitofp <4 x i1> undef to <4 x float>
213 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r192 = uitofp <4 x i8> undef to <4 x float>
214 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r193 = sitofp <4 x i8> undef to <4 x float>
215 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r194 = uitofp <4 x i16> undef to <4 x float>
216 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r195 = sitofp <4 x i16> undef to <4 x float>
217 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r196 = uitofp <4 x i32> undef to <4 x float>
218 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r197 = sitofp <4 x i32> undef to <4 x float>
219 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r198 = uitofp <4 x i64> undef to <4 x float>
220 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r199 = sitofp <4 x i64> undef to <4 x float>
221 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r200 = uitofp <4 x i1> undef to <4 x double>
222 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r201 = sitofp <4 x i1> undef to <4 x double>
223 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %r202 = uitofp <4 x i8> undef to <4 x double>
224 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %r203 = sitofp <4 x i8> undef to <4 x double>
225 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %r204 = uitofp <4 x i16> undef to <4 x double>
226 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %r205 = sitofp <4 x i16> undef to <4 x double>
227 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r206 = uitofp <4 x i32> undef to <4 x double>
228 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %r207 = sitofp <4 x i32> undef to <4 x double>
229 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r208 = uitofp <4 x i64> undef to <4 x double>
230 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r209 = sitofp <4 x i64> undef to <4 x double>
231 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r210 = uitofp <8 x i1> undef to <8 x float>
232 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r211 = sitofp <8 x i1> undef to <8 x float>
233 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r212 = uitofp <8 x i8> undef to <8 x float>
234 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r213 = sitofp <8 x i8> undef to <8 x float>
235 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r214 = uitofp <8 x i16> undef to <8 x float>
236 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r215 = sitofp <8 x i16> undef to <8 x float>
237 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r216 = uitofp <8 x i32> undef to <8 x float>
238 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %r217 = sitofp <8 x i32> undef to <8 x float>
239 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r218 = uitofp <8 x i64> undef to <8 x float>
240 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %r219 = sitofp <8 x i64> undef to <8 x float>
241 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r220 = uitofp <8 x i1> undef to <8 x double>
242 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r221 = sitofp <8 x i1> undef to <8 x double>
243 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r222 = uitofp <8 x i8> undef to <8 x double>
244 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r223 = sitofp <8 x i8> undef to <8 x double>
245 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r224 = uitofp <8 x i16> undef to <8 x double>
246 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r225 = sitofp <8 x i16> undef to <8 x double>
247 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r226 = uitofp <8 x i16> undef to <8 x double>
248 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 19 for instruction: %r227 = sitofp <8 x i16> undef to <8 x double>
249 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r228 = uitofp <8 x i64> undef to <8 x double>
250 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r229 = sitofp <8 x i64> undef to <8 x double>
251 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r230 = uitofp <16 x i1> undef to <16 x float>
252 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r231 = sitofp <16 x i1> undef to <16 x float>
253 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %r232 = uitofp <16 x i8> undef to <16 x float>
254 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 21 for instruction: %r233 = sitofp <16 x i8> undef to <16 x float>
255 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r234 = uitofp <16 x i16> undef to <16 x float>
256 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r235 = sitofp <16 x i16> undef to <16 x float>
257 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r236 = uitofp <16 x i32> undef to <16 x float>
258 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %r237 = sitofp <16 x i32> undef to <16 x float>
259 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r238 = uitofp <16 x i64> undef to <16 x float>
260 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %r239 = sitofp <16 x i64> undef to <16 x float>
261 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %r240 = uitofp <16 x i1> undef to <16 x double>
262 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %r241 = sitofp <16 x i1> undef to <16 x double>
263 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 39 for instruction: %r242 = uitofp <16 x i8> undef to <16 x double>
264 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 39 for instruction: %r243 = sitofp <16 x i8> undef to <16 x double>
265 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 38 for instruction: %r244 = uitofp <16 x i16> undef to <16 x double>
266 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 38 for instruction: %r245 = sitofp <16 x i16> undef to <16 x double>
267 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 38 for instruction: %r246 = uitofp <16 x i16> undef to <16 x double>
268 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 38 for instruction: %r247 = sitofp <16 x i16> undef to <16 x double>
269 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r248 = uitofp <16 x i64> undef to <16 x double>
270 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %r249 = sitofp <16 x i64> undef to <16 x double>
271 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r250 = uitofp <8 x i1> undef to <8 x half>
272 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r251 = sitofp <8 x i1> undef to <8 x half>
273 ; NOFP16-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r252 = uitofp <8 x i8> undef to <8 x half>
274 ; NOFP16-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r253 = sitofp <8 x i8> undef to <8 x half>
275 ; FULLFP16-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r252 = uitofp <8 x i8> undef to <8 x half>
276 ; FULLFP16-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r253 = sitofp <8 x i8> undef to <8 x half>
277 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r254 = uitofp <8 x i16> undef to <8 x half>
278 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r255 = sitofp <8 x i16> undef to <8 x half>
279 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r256 = uitofp <8 x i32> undef to <8 x half>
280 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %r257 = sitofp <8 x i32> undef to <8 x half>
281 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r258 = uitofp <8 x i64> undef to <8 x half>
282 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %r259 = sitofp <8 x i64> undef to <8 x half>
283 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r260 = uitofp <16 x i1> undef to <16 x half>
284 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r261 = sitofp <16 x i1> undef to <16 x half>
285 ; NOFP16-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r262 = uitofp <16 x i8> undef to <16 x half>
286 ; NOFP16-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r263 = sitofp <16 x i8> undef to <16 x half>
287 ; FULLFP16-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r262 = uitofp <16 x i8> undef to <16 x half>
288 ; FULLFP16-NEXT:  Cost Model: Found an estimated cost of 3 for instruction:   %r263 = sitofp <16 x i8> undef to <16 x half>
289 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction:   %r264 = uitofp <16 x i16> undef to <16 x half>
290 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction:   %r265 = sitofp <16 x i16> undef to <16 x half>
291 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction:   %r266 = uitofp <16 x i32> undef to <16 x half>
292 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction:   %r267 = sitofp <16 x i32> undef to <16 x half>
293 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 14 for instruction:   %r268 = uitofp <16 x i64> undef to <16 x half>
294 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 14 for instruction:   %r269 = sitofp <16 x i64> undef to <16 x half>
295 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
297   %r0 = sext i1 undef to i8
298   %r1 = zext i1 undef to i8
299   %r2 = sext i1 undef to i16
300   %r3 = zext i1 undef to i16
301   %r4 = sext i1 undef to i32
302   %r5 = zext i1 undef to i32
303   %r6 = sext i1 undef to i64
304   %r7 = zext i1 undef to i64
305   %r8 = trunc i8 undef to i1
306   %r9 = sext i8 undef to i16
307   %r10 = zext i8 undef to i16
308   %r11 = sext i8 undef to i32
309   %r12 = zext i8 undef to i32
310   %r13 = sext i8 undef to i64
311   %r14 = zext i8 undef to i64
312   %r15 = trunc i16 undef to i1
313   %r16 = trunc i16 undef to i8
314   %r17 = sext i16 undef to i32
315   %r18 = zext i16 undef to i32
316   %r19 = sext i16 undef to i64
317   %r20 = zext i16 undef to i64
318   %r21 = trunc i32 undef to i1
319   %r22 = trunc i32 undef to i8
320   %r23 = trunc i32 undef to i16
321   %r24 = sext i32 undef to i64
322   %r25 = zext i32 undef to i64
323   %r26 = trunc i64 undef to i1
324   %r27 = trunc i64 undef to i8
325   %r28 = trunc i64 undef to i16
326   %r29 = trunc i64 undef to i32
327   %r30 = fptoui float undef to i1
328   %r31 = fptosi float undef to i1
329   %r32 = fptoui float undef to i8
330   %r33 = fptosi float undef to i8
331   %r34 = fptoui float undef to i16
332   %r35 = fptosi float undef to i16
333   %r36 = fptoui float undef to i32
334   %r37 = fptosi float undef to i32
335   %r38 = fptoui float undef to i64
336   %r39 = fptosi float undef to i64
337   %r40 = fptoui double undef to i1
338   %r41 = fptosi double undef to i1
339   %r42 = fptoui double undef to i8
340   %r43 = fptosi double undef to i8
341   %r44 = fptoui double undef to i16
342   %r45 = fptosi double undef to i16
343   %r46 = fptoui double undef to i32
344   %r47 = fptosi double undef to i32
345   %r48 = fptoui double undef to i64
346   %r49 = fptosi double undef to i64
347   %r50 = sitofp i1 undef to float
348   %r51 = uitofp i1 undef to float
349   %r52 = sitofp i1 undef to double
350   %r53 = uitofp i1 undef to double
351   %r54 = sitofp i8 undef to float
352   %r55 = uitofp i8 undef to float
353   %r56 = sitofp i8 undef to double
354   %r57 = uitofp i8 undef to double
355   %r58 = sitofp i16 undef to float
356   %r59 = uitofp i16 undef to float
357   %r60 = sitofp i16 undef to double
358   %r61 = uitofp i16 undef to double
359   %r62 = sitofp i32 undef to float
360   %r63 = uitofp i32 undef to float
361   %r64 = sitofp i32 undef to double
362   %r65 = uitofp i32 undef to double
363   %r66 = sitofp i64 undef to float
364   %r67 = uitofp i64 undef to float
365   %r68 = sitofp i64 undef to double
366   %r69 = uitofp i64 undef to double
367   %q70 = sext <4 x i8> undef to <4 x i32>
368   %q71 = sext <8 x i8> undef to <8 x i16>
369   %s70 = sext <4 x i8> undef to <4 x i32>
370   %r70 = sext <8 x i8> undef to <8 x i32>
371   %r71 = sext <16 x i8> undef to <16 x i32>
372   %q72 = zext <4 x i8> undef to <4 x i32>
373   %q73 = zext <8 x i8> undef to <8 x i16>
374   %s72 = zext <4 x i8> undef to <4 x i32>
375   %r72 = zext <8 x i8> undef to <8 x i32>
376   %r73 = zext <16 x i8> undef to <16 x i32>
377   %rext_0 = sext <8 x i8> undef to <8 x i64>
378   %rext_1 = zext <8 x i8> undef to <8 x i64>
379   %rext_2 = sext <8 x i16> undef to <8 x i64>
380   %rext_3 = zext <8 x i16> undef to <8 x i64>
381   %rext_4 = sext <4 x i16> undef to <4 x i64>
382   %rext_5 = zext <4 x i16> undef to <4 x i64>
383   %rext_6 = sext <2 x i8> undef to <2 x i64>
384   %rext_7 = zext <2 x i8> undef to <2 x i64>
385   %rext_8 = sext <2 x i16> undef to <2 x i64>
386   %rext_9 = zext <2 x i16> undef to <2 x i64>
387   %rext_a = sext <2 x i32> undef to <2 x i64>
388   %rext_b = zext <2 x i32> undef to <2 x i64>
389   %r74 = trunc <8 x i32> undef to <8 x i8>
390   %r75 = trunc <16 x i32> undef to <16 x i8>
391   %r80 = fptrunc double undef to float
392   %r81 = fptrunc <2 x double> undef to <2 x float>
393   %r82 = fptrunc <4 x double> undef to <4 x float>
394   %r83 = fptrunc <8 x double> undef to <8 x float>
395   %r84 = fptrunc <16 x double> undef to <16 x float>
396   %r85 = fpext float undef to double
397   %r86 = fpext <2 x float> undef to <2 x double>
398   %r87 = fpext <4 x float> undef to <4 x double>
399   %r88 = fpext <8 x float> undef to <8 x double>
400   %r89 = fpext <16 x float> undef to <16 x double>
401   %r90 = fptoui <2 x float> undef to <2 x i1>
402   %r91 = fptosi <2 x float> undef to <2 x i1>
403   %r92 = fptoui <2 x float> undef to <2 x i8>
404   %r93 = fptosi <2 x float> undef to <2 x i8>
405   %r94 = fptoui <2 x float> undef to <2 x i16>
406   %r95 = fptosi <2 x float> undef to <2 x i16>
407   %r96 = fptoui <2 x float> undef to <2 x i32>
408   %r97 = fptosi <2 x float> undef to <2 x i32>
409   %r98 = fptoui <2 x float> undef to <2 x i64>
410   %r99 = fptosi <2 x float> undef to <2 x i64>
411   %r100 = fptoui <2 x double> undef to <2 x i1>
412   %r101 = fptosi <2 x double> undef to <2 x i1>
413   %r102 = fptoui <2 x double> undef to <2 x i8>
414   %r103 = fptosi <2 x double> undef to <2 x i8>
415   %r104 = fptoui <2 x double> undef to <2 x i16>
416   %r105 = fptosi <2 x double> undef to <2 x i16>
417   %r106 = fptoui <2 x double> undef to <2 x i32>
418   %r107 = fptosi <2 x double> undef to <2 x i32>
419   %r108 = fptoui <2 x double> undef to <2 x i64>
420   %r109 = fptosi <2 x double> undef to <2 x i64>
422   %r110 = fptoui <4 x float> undef to <4 x i1>
423   %r111 = fptosi <4 x float> undef to <4 x i1>
424   %r112 = fptoui <4 x float> undef to <4 x i8>
425   %r113 = fptosi <4 x float> undef to <4 x i8>
427   %r114 = fptoui <4 x float> undef to <4 x i16>
428   %r115 = fptosi <4 x float> undef to <4 x i16>
429   %r116 = fptoui <4 x float> undef to <4 x i32>
430   %r117 = fptosi <4 x float> undef to <4 x i32>
431   %r118 = fptoui <4 x float> undef to <4 x i64>
432   %r119 = fptosi <4 x float> undef to <4 x i64>
434   %r120 = fptoui <4 x double> undef to <4 x i1>
435   %r121 = fptosi <4 x double> undef to <4 x i1>
436   %r122 = fptoui <4 x double> undef to <4 x i8>
437   %r123 = fptosi <4 x double> undef to <4 x i8>
438   %r124 = fptoui <4 x double> undef to <4 x i16>
439   %r125 = fptosi <4 x double> undef to <4 x i16>
440   %r126 = fptoui <4 x double> undef to <4 x i32>
441   %r127 = fptosi <4 x double> undef to <4 x i32>
442   %r128 = fptoui <4 x double> undef to <4 x i64>
443   %r129 = fptosi <4 x double> undef to <4 x i64>
445   %r130 = fptoui <8 x float> undef to <8 x i1>
446   %r131 = fptosi <8 x float> undef to <8 x i1>
447   %r132 = fptoui <8 x float> undef to <8 x i8>
448   %r133 = fptosi <8 x float> undef to <8 x i8>
449   %r134 = fptoui <8 x float> undef to <8 x i16>
450   %r135 = fptosi <8 x float> undef to <8 x i16>
451   %r136 = fptoui <8 x float> undef to <8 x i32>
452   %r137 = fptosi <8 x float> undef to <8 x i32>
453   %r138 = fptoui <8 x float> undef to <8 x i64>
454   %r139 = fptosi <8 x float> undef to <8 x i64>
456   %r140 = fptoui <8 x double> undef to <8 x i1>
457   %r141 = fptosi <8 x double> undef to <8 x i1>
458   %r142 = fptoui <8 x double> undef to <8 x i8>
459   %r143 = fptosi <8 x double> undef to <8 x i8>
460   %r144 = fptoui <8 x double> undef to <8 x i16>
461   %r145 = fptosi <8 x double> undef to <8 x i16>
462   %r146 = fptoui <8 x double> undef to <8 x i32>
463   %r147 = fptosi <8 x double> undef to <8 x i32>
464   %r148 = fptoui <8 x double> undef to <8 x i64>
465   %r149 = fptosi <8 x double> undef to <8 x i64>
467   %r150 = fptoui <16 x float> undef to <16 x i1>
468   %r151 = fptosi <16 x float> undef to <16 x i1>
469   %r152 = fptoui <16 x float> undef to <16 x i8>
470   %r153 = fptosi <16 x float> undef to <16 x i8>
471   %r154 = fptoui <16 x float> undef to <16 x i16>
472   %r155 = fptosi <16 x float> undef to <16 x i16>
473   %r156 = fptoui <16 x float> undef to <16 x i32>
474   %r157 = fptosi <16 x float> undef to <16 x i32>
475   %r158 = fptoui <16 x float> undef to <16 x i64>
476   %r159 = fptosi <16 x float> undef to <16 x i64>
478   %r160 = fptoui <16 x double> undef to <16 x i1>
479   %r161 = fptosi <16 x double> undef to <16 x i1>
480   %r162 = fptoui <16 x double> undef to <16 x i8>
481   %r163 = fptosi <16 x double> undef to <16 x i8>
482   %r164 = fptoui <16 x double> undef to <16 x i16>
483   %r165 = fptosi <16 x double> undef to <16 x i16>
484   %r166 = fptoui <16 x double> undef to <16 x i32>
485   %r167 = fptosi <16 x double> undef to <16 x i32>
486   %r168 = fptoui <16 x double> undef to <16 x i64>
487   %r169 = fptosi <16 x double> undef to <16 x i64>
489   %r170 = uitofp <2 x i1> undef to <2 x float>
490   %r171 = sitofp <2 x i1> undef to <2 x float>
491   %r172 = uitofp <2 x i8> undef to <2 x float>
492   %r173 = sitofp <2 x i8> undef to <2 x float>
493   %r174 = uitofp <2 x i16> undef to <2 x float>
494   %r175 = sitofp <2 x i16> undef to <2 x float>
495   %r176 = uitofp <2 x i32> undef to <2 x float>
496   %r177 = sitofp <2 x i32> undef to <2 x float>
497   %r178 = uitofp <2 x i64> undef to <2 x float>
498   %r179 = sitofp <2 x i64> undef to <2 x float>
500   %r180 = uitofp <2 x i1> undef to <2 x double>
501   %r181 = sitofp <2 x i1> undef to <2 x double>
502   %r182 = uitofp <2 x i8> undef to <2 x double>
503   %r183 = sitofp <2 x i8> undef to <2 x double>
504   %r184 = uitofp <2 x i16> undef to <2 x double>
505   %r185 = sitofp <2 x i16> undef to <2 x double>
506   %r186 = uitofp <2 x i32> undef to <2 x double>
507   %r187 = sitofp <2 x i32> undef to <2 x double>
508   %r188 = uitofp <2 x i64> undef to <2 x double>
509   %r189 = sitofp <2 x i64> undef to <2 x double>
511   %r190 = uitofp <4 x i1> undef to <4 x float>
512   %r191 = sitofp <4 x i1> undef to <4 x float>
513   %r192 = uitofp <4 x i8> undef to <4 x float>
514   %r193 = sitofp <4 x i8> undef to <4 x float>
515   %r194 = uitofp <4 x i16> undef to <4 x float>
516   %r195 = sitofp <4 x i16> undef to <4 x float>
517   %r196 = uitofp <4 x i32> undef to <4 x float>
518   %r197 = sitofp <4 x i32> undef to <4 x float>
519   %r198 = uitofp <4 x i64> undef to <4 x float>
520   %r199 = sitofp <4 x i64> undef to <4 x float>
522   %r200 = uitofp <4 x i1> undef to <4 x double>
523   %r201 = sitofp <4 x i1> undef to <4 x double>
524   %r202 = uitofp <4 x i8> undef to <4 x double>
525   %r203 = sitofp <4 x i8> undef to <4 x double>
526   %r204 = uitofp <4 x i16> undef to <4 x double>
527   %r205 = sitofp <4 x i16> undef to <4 x double>
528   %r206 = uitofp <4 x i32> undef to <4 x double>
529   %r207 = sitofp <4 x i32> undef to <4 x double>
530   %r208 = uitofp <4 x i64> undef to <4 x double>
531   %r209 = sitofp <4 x i64> undef to <4 x double>
533   %r210 = uitofp <8 x i1> undef to <8 x float>
534   %r211 = sitofp <8 x i1> undef to <8 x float>
535   %r212 = uitofp <8 x i8> undef to <8 x float>
536   %r213 = sitofp <8 x i8> undef to <8 x float>
537   %r214 = uitofp <8 x i16> undef to <8 x float>
538   %r215 = sitofp <8 x i16> undef to <8 x float>
539   %r216 = uitofp <8 x i32> undef to <8 x float>
540   %r217 = sitofp <8 x i32> undef to <8 x float>
541   %r218 = uitofp <8 x i64> undef to <8 x float>
542   %r219 = sitofp <8 x i64> undef to <8 x float>
544   %r220 = uitofp <8 x i1> undef to <8 x double>
545   %r221 = sitofp <8 x i1> undef to <8 x double>
546   %r222 = uitofp <8 x i8> undef to <8 x double>
547   %r223 = sitofp <8 x i8> undef to <8 x double>
548   %r224 = uitofp <8 x i16> undef to <8 x double>
549   %r225 = sitofp <8 x i16> undef to <8 x double>
550   %r226 = uitofp <8 x i16> undef to <8 x double>
551   %r227 = sitofp <8 x i16> undef to <8 x double>
552   %r228 = uitofp <8 x i64> undef to <8 x double>
553   %r229 = sitofp <8 x i64> undef to <8 x double>
555   %r230 = uitofp <16 x i1> undef to <16 x float>
556   %r231 = sitofp <16 x i1> undef to <16 x float>
557   %r232 = uitofp <16 x i8> undef to <16 x float>
558   %r233 = sitofp <16 x i8> undef to <16 x float>
559   %r234 = uitofp <16 x i16> undef to <16 x float>
560   %r235 = sitofp <16 x i16> undef to <16 x float>
561   %r236 = uitofp <16 x i32> undef to <16 x float>
562   %r237 = sitofp <16 x i32> undef to <16 x float>
563   %r238 = uitofp <16 x i64> undef to <16 x float>
564   %r239 = sitofp <16 x i64> undef to <16 x float>
566   %r240 = uitofp <16 x i1> undef to <16 x double>
567   %r241 = sitofp <16 x i1> undef to <16 x double>
568   %r242 = uitofp <16 x i8> undef to <16 x double>
569   %r243 = sitofp <16 x i8> undef to <16 x double>
570   %r244 = uitofp <16 x i16> undef to <16 x double>
571   %r245 = sitofp <16 x i16> undef to <16 x double>
572   %r246 = uitofp <16 x i16> undef to <16 x double>
573   %r247 = sitofp <16 x i16> undef to <16 x double>
574   %r248 = uitofp <16 x i64> undef to <16 x double>
575   %r249 = sitofp <16 x i64> undef to <16 x double>
577   %r250 = uitofp <8 x i1> undef to <8 x half>
578   %r251 = sitofp <8 x i1> undef to <8 x half>
579   %r252 = uitofp <8 x i8> undef to <8 x half>
580   %r253 = sitofp <8 x i8> undef to <8 x half>
581   %r254 = uitofp <8 x i16> undef to <8 x half>
582   %r255 = sitofp <8 x i16> undef to <8 x half>
583   %r256 = uitofp <8 x i32> undef to <8 x half>
584   %r257 = sitofp <8 x i32> undef to <8 x half>
585   %r258 = uitofp <8 x i64> undef to <8 x half>
586   %r259 = sitofp <8 x i64> undef to <8 x half>
588   %r260 = uitofp <16 x i1> undef to <16 x half>
589   %r261 = sitofp <16 x i1> undef to <16 x half>
590   %r262 = uitofp <16 x i8> undef to <16 x half>
591   %r263 = sitofp <16 x i8> undef to <16 x half>
592   %r264 = uitofp <16 x i16> undef to <16 x half>
593   %r265 = sitofp <16 x i16> undef to <16 x half>
594   %r266 = uitofp <16 x i32> undef to <16 x half>
595   %r267 = sitofp <16 x i32> undef to <16 x half>
596   %r268 = uitofp <16 x i64> undef to <16 x half>
597   %r269 = sitofp <16 x i64> undef to <16 x half>
599   ret i32 undef
602 define i32 @casts_with_users(i8 %a, i16 %b, i32 %c, i64 %d, i1 %e) {
603 ; CHECK-LABEL: 'casts_with_users'
604 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r0 = sext i8 %a to i16
605 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r1 = sext i8 %a to i32
606 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r2 = sext i8 %a to i64
607 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r3 = sext i16 %b to i32
608 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r4 = sext i16 %b to i64
609 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r5 = sext i32 %c to i64
610 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r0, i16* undef
611 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r1, i32* undef
612 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r2, i64* undef
613 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r3, i32* undef
614 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r4, i64* undef
615 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r5, i64* undef
616 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r6 = zext i8 %a to i16
617 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r7 = zext i8 %a to i32
618 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r8 = zext i8 %a to i64
619 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r9 = zext i16 %b to i32
620 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r10 = zext i16 %b to i64
621 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r11 = zext i32 %c to i64
622 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r6, i16* undef
623 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r7, i32* undef
624 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r8, i64* undef
625 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r9, i32* undef
626 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r10, i64* undef
627 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r11, i64* undef
628 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r12 = trunc i64 %d to i32
629 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r13 = trunc i64 %d to i16
630 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r14 = trunc i64 %d to i8
631 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r15 = trunc i32 %c to i16
632 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r16 = trunc i32 %c to i8
633 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r17 = trunc i16 %b to i8
634 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.8 = add i8 %r14, %r16
635 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.8.1 = add i8 %tie.trunc.8, %r17
636 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.16 = add i16 %r13, %r15
637 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.16.8 = trunc i16 %r6 to i8
638 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.32.8 = trunc i32 %r7 to i8
639 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.32.16 = trunc i32 %r9 to i16
640 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.8 = trunc i64 %r8 to i8
641 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.16 = trunc i64 %r10 to i16
642 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.32 = trunc i64 %r11 to i32
643 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r18 = sext i1 %e to i8
644 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r19 = sext i1 %e to i16
645 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r20 = sext i1 %e to i32
646 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r21 = sext i1 %e to i64
647 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r22 = zext i1 %e to i8
648 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r23 = zext i1 %e to i16
649 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %r24 = zext i1 %e to i32
650 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r25 = zext i1 %e to i64
651 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 %r18, i8* undef
652 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r19, i16* undef
653 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r20, i32* undef
654 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r21, i64* undef
655 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 %r22, i8* undef
656 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r23, i16* undef
657 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r24, i32* undef
658 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i64 %r25, i64* undef
659 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r12
661   %r0 = sext i8 %a to i16
662   %r1 = sext i8 %a to i32
663   %r2 = sext i8 %a to i64
664   %r3 = sext i16 %b to i32
665   %r4 = sext i16 %b to i64
666   %r5 = sext i32 %c to i64
667   store i16 %r0, i16* undef
668   store i32 %r1, i32* undef
669   store i64 %r2, i64* undef
670   store i32 %r3, i32* undef
671   store i64 %r4, i64* undef
672   store i64 %r5, i64* undef
674   %r6 = zext i8 %a to i16
675   %r7 = zext i8 %a to i32
676   %r8 = zext i8 %a to i64
677   %r9 = zext i16 %b to i32
678   %r10 = zext i16 %b to i64
679   %r11 = zext i32 %c to i64
680   store i16 %r6, i16* undef
681   store i32 %r7, i32* undef
682   store i64 %r8, i64* undef
683   store i32 %r9, i32* undef
684   store i64 %r10, i64* undef
685   store i64 %r11, i64* undef
687   %r12 = trunc i64 %d to i32
688   %r13 = trunc i64 %d to i16
689   %r14 = trunc i64 %d to i8
690   %r15 = trunc i32 %c to i16
691   %r16 = trunc i32 %c to i8
692   %r17 = trunc i16 %b to i8
693   %tie.trunc.8 = add i8 %r14, %r16
694   %tie.trunc.8.1 = add i8 %tie.trunc.8, %r17
695   %tie.trunc.16 = add i16 %r13, %r15
697   %free.trunc.16.8 = trunc i16 %r6 to i8
698   %free.trunc.32.8 = trunc i32 %r7 to i8
699   %free.trunc.32.16 = trunc i32 %r9 to i16
700   %free.trunc.64.8 = trunc i64 %r8 to i8
701   %free.trunc.64.16 = trunc i64 %r10 to i16
702   %free.trunc.64.32 = trunc i64 %r11 to i32
704   %r18 = sext i1 %e to i8
705   %r19 = sext i1 %e to i16
706   %r20 = sext i1 %e to i32
707   %r21 = sext i1 %e to i64
708   %r22 = zext i1 %e to i8
709   %r23 = zext i1 %e to i16
710   %r24 = zext i1 %e to i32
711   %r25 = zext i1 %e to i64
712   store i8 %r18, i8* undef
713   store i16 %r19, i16* undef
714   store i32 %r20, i32* undef
715   store i64 %r21, i64* undef
716   store i8 %r22, i8* undef
717   store i16 %r23, i16* undef
718   store i32 %r24, i32* undef
719   store i64 %r25, i64* undef
720   ret i32 %r12
723 define i32 @bitcasts() {
724 ; CHECK-LABEL: 'bitcasts'
725 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %a = bitcast i32 undef to i32
726 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %b = bitcast float undef to float
727 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %c = bitcast i32 undef to float
728 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %d = bitcast float undef to i32
729 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %e = bitcast i64 undef to double
730 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %f = bitcast double undef to i64
731 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %g = bitcast half undef to i16
732 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %h = bitcast i16 undef to half
733 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
735   %a = bitcast i32 undef to i32
736   %b = bitcast float undef to float
737   %c = bitcast i32 undef to float
738   %d = bitcast float undef to i32
739   %e = bitcast i64 undef to double
740   %f = bitcast double undef to i64
741   %g = bitcast half undef to i16
742   %h = bitcast i16 undef to half
743   ret i32 undef
746 define i32 @load_extends() #0 {
747 ; CHECK-LABEL: 'load_extends'
748 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadi8 = load i8, i8* undef
749 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadi16 = load i16, i16* undef
750 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadi32 = load i32, i32* undef
751 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %loadv2i8 = load <2 x i8>, <2 x i8>* undef
752 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %loadv4i8 = load <4 x i8>, <4 x i8>* undef
753 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadv8i8 = load <8 x i8>, <8 x i8>* undef
754 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %loadv2i16 = load <2 x i16>, <2 x i16>* undef
755 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadv4i16 = load <4 x i16>, <4 x i16>* undef
756 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadv2i32 = load <2 x i32>, <2 x i32>* undef
757 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadv4i32 = load <4 x i32>, <4 x i32>* undef
758 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadnxv2i32 = load <vscale x 2 x i32>, <vscale x 2 x i32>* undef
759 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %loadnxv4i32 = load <vscale x 4 x i32>, <vscale x 4 x i32>* undef
760 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r0 = sext i8 %loadi8 to i16
761 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r1 = zext i8 %loadi8 to i16
762 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r2 = sext i8 %loadi8 to i32
763 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r3 = zext i8 %loadi8 to i32
764 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r4 = sext i8 %loadi8 to i64
765 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r5 = zext i8 %loadi8 to i64
766 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r6 = sext i16 %loadi16 to i32
767 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r7 = zext i16 %loadi16 to i32
768 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r8 = sext i16 %loadi16 to i64
769 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r9 = zext i16 %loadi16 to i64
770 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r10 = sext i32 %loadi32 to i64
771 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r11 = zext i32 %loadi32 to i64
772 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v0 = sext <8 x i8> %loadv8i8 to <8 x i16>
773 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v1 = zext <8 x i8> %loadv8i8 to <8 x i16>
774 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2 = sext <4 x i8> %loadv4i8 to <4 x i32>
775 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v3 = zext <4 x i8> %loadv4i8 to <4 x i32>
776 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4 = sext <2 x i8> %loadv2i8 to <2 x i64>
777 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v5 = zext <2 x i8> %loadv2i8 to <2 x i64>
778 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v6 = sext <4 x i16> %loadv4i16 to <4 x i32>
779 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v7 = zext <4 x i16> %loadv4i16 to <4 x i32>
780 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8 = sext <2 x i16> %loadv2i16 to <2 x i64>
781 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v9 = zext <2 x i16> %loadv2i16 to <2 x i64>
782 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v10 = sext <2 x i32> %loadv2i32 to <2 x i64>
783 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v11 = zext <2 x i32> %loadv2i32 to <2 x i64>
784 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v12 = sext <4 x i32> %loadv4i32 to <4 x i64>
785 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v13 = zext <4 x i32> %loadv4i32 to <4 x i64>
786 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %v14 = sext <vscale x 2 x i32> %loadnxv2i32 to <vscale x 2 x i64>
787 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %v15 = zext <vscale x 2 x i32> %loadnxv2i32 to <vscale x 2 x i64>
788 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16 = sext <vscale x 4 x i32> %loadnxv4i32 to <vscale x 4 x i64>
789 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v17 = zext <vscale x 4 x i32> %loadnxv4i32 to <vscale x 4 x i64>
790 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
792   %loadi8 = load i8, i8* undef
793   %loadi16 = load i16, i16* undef
794   %loadi32 = load i32, i32* undef
795   %loadv2i8 = load <2 x i8>, <2 x i8>* undef
796   %loadv4i8 = load <4 x i8>, <4 x i8>* undef
797   %loadv8i8 = load <8 x i8>, <8 x i8>* undef
798   %loadv2i16 = load <2 x i16>, <2 x i16>* undef
799   %loadv4i16 = load <4 x i16>, <4 x i16>* undef
800   %loadv2i32 = load <2 x i32>, <2 x i32>* undef
801   %loadv4i32 = load <4 x i32>, <4 x i32>* undef
802   %loadnxv2i32 = load <vscale x 2 x i32>, <vscale x 2 x i32>* undef
803   %loadnxv4i32 = load <vscale x 4 x i32>, <vscale x 4 x i32>* undef
805   %r0 = sext i8 %loadi8 to i16
806   %r1 = zext i8 %loadi8 to i16
807   %r2 = sext i8 %loadi8 to i32
808   %r3 = zext i8 %loadi8 to i32
809   %r4 = sext i8 %loadi8 to i64
810   %r5 = zext i8 %loadi8 to i64
811   %r6 = sext i16 %loadi16 to i32
812   %r7 = zext i16 %loadi16 to i32
813   %r8 = sext i16 %loadi16 to i64
814   %r9 = zext i16 %loadi16 to i64
815   %r10 = sext i32 %loadi32 to i64
816   %r11 = zext i32 %loadi32 to i64
818   %v0 = sext <8 x i8> %loadv8i8 to <8 x i16>
819   %v1 = zext <8 x i8> %loadv8i8 to <8 x i16>
820   %v2 = sext <4 x i8> %loadv4i8 to <4 x i32>
821   %v3 = zext <4 x i8> %loadv4i8 to <4 x i32>
822   %v4 = sext <2 x i8> %loadv2i8 to <2 x i64>
823   %v5 = zext <2 x i8> %loadv2i8 to <2 x i64>
824   %v6 = sext <4 x i16> %loadv4i16 to <4 x i32>
825   %v7 = zext <4 x i16> %loadv4i16 to <4 x i32>
826   %v8 = sext <2 x i16> %loadv2i16 to <2 x i64>
827   %v9 = zext <2 x i16> %loadv2i16 to <2 x i64>
828   %v10 = sext <2 x i32> %loadv2i32 to <2 x i64>
829   %v11 = zext <2 x i32> %loadv2i32 to <2 x i64>
830   %v12 = sext <4 x i32> %loadv4i32 to <4 x i64>
831   %v13 = zext <4 x i32> %loadv4i32 to <4 x i64>
832   %v14 = sext <vscale x 2 x i32> %loadnxv2i32 to <vscale x 2 x i64>
833   %v15 = zext <vscale x 2 x i32> %loadnxv2i32 to <vscale x 2 x i64>
834   %v16 = sext <vscale x 4 x i32> %loadnxv4i32 to <vscale x 4 x i64>
835   %v17 = zext <vscale x 4 x i32> %loadnxv4i32 to <vscale x 4 x i64>
837   ret i32 undef
840 define i32 @store_truncs() {
841 ; CHECK-LABEL: 'store_truncs'
842 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r0 = trunc i64 undef to i8
843 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 %r0, i8* undef
844 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r1 = trunc i64 undef to i16
845 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r1, i16* undef
846 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r2 = trunc i64 undef to i32
847 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i32 %r2, i32* undef
848 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r3 = trunc i32 undef to i8
849 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 %r3, i8* undef
850 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r4 = trunc i32 undef to i16
851 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i16 %r4, i16* undef
852 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: %r5 = trunc i16 undef to i8
853 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store i8 %r5, i8* undef
854 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef
856   %r0 = trunc i64 undef to i8
857   store i8 %r0, i8* undef
858   %r1 = trunc i64 undef to i16
859   store i16 %r1, i16* undef
860   %r2 = trunc i64 undef to i32
861   store i32 %r2, i32* undef
862   %r3 = trunc i32 undef to i8
863   store i8 %r3, i8* undef
864   %r4 = trunc i32 undef to i16
865   store i16 %r4, i16* undef
866   %r5 = trunc i16 undef to i8
867   store i8 %r5, i8* undef
868   ret i32 undef
871 attributes #0 = { "target-features"="+sve" }