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