[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Analysis / CostModel / AArch64 / sve-fptoi.ll
blob3448a165881d171e62b6c3b0d90f40d33e1b6c3e
1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 5
2 ; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple aarch64-linux-gnu -mattr=+sve -o - -S < %s | FileCheck %s
4 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
5 target triple = "aarch64-unknown-linux-gnu"
7 define void @sve-fptoi() {
8 ; CHECK-LABEL: 'sve-fptoi'
9 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_si8 = fptosi <vscale x 1 x half> undef to <vscale x 1 x i8>
10 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_ui8 = fptoui <vscale x 1 x half> undef to <vscale x 1 x i8>
11 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_si32 = fptosi <vscale x 1 x half> undef to <vscale x 1 x i32>
12 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_ui32 = fptoui <vscale x 1 x half> undef to <vscale x 1 x i32>
13 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_si64 = fptosi <vscale x 1 x half> undef to <vscale x 1 x i64>
14 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f16_to_ui64 = fptoui <vscale x 1 x half> undef to <vscale x 1 x i64>
15 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_si8 = fptosi <vscale x 1 x float> undef to <vscale x 1 x i8>
16 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_ui8 = fptoui <vscale x 1 x float> undef to <vscale x 1 x i8>
17 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_si16 = fptosi <vscale x 1 x float> undef to <vscale x 1 x i16>
18 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_ui16 = fptoui <vscale x 1 x float> undef to <vscale x 1 x i16>
19 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_si64 = fptosi <vscale x 1 x float> undef to <vscale x 1 x i64>
20 ; CHECK-NEXT:  Cost Model: Invalid cost for instruction: %nv1f32_to_ui64 = fptoui <vscale x 1 x float> undef to <vscale x 1 x i64>
21 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_si8 = fptosi <vscale x 1 x double> undef to <vscale x 1 x i8>
22 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_ui8 = fptoui <vscale x 1 x double> undef to <vscale x 1 x i8>
23 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_si16 = fptosi <vscale x 1 x double> undef to <vscale x 1 x i16>
24 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_ui16 = fptoui <vscale x 1 x double> undef to <vscale x 1 x i16>
25 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_si32 = fptosi <vscale x 1 x double> undef to <vscale x 1 x i32>
26 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv1f64_to_ui32 = fptoui <vscale x 1 x double> undef to <vscale x 1 x i32>
27 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_si8 = fptosi <vscale x 2 x half> undef to <vscale x 2 x i8>
28 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_ui8 = fptoui <vscale x 2 x half> undef to <vscale x 2 x i8>
29 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_si32 = fptosi <vscale x 2 x half> undef to <vscale x 2 x i32>
30 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_ui32 = fptoui <vscale x 2 x half> undef to <vscale x 2 x i32>
31 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_si64 = fptosi <vscale x 2 x half> undef to <vscale x 2 x i64>
32 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f16_to_ui64 = fptoui <vscale x 2 x half> undef to <vscale x 2 x i64>
33 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_si8 = fptosi <vscale x 2 x float> undef to <vscale x 2 x i8>
34 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_ui8 = fptoui <vscale x 2 x float> undef to <vscale x 2 x i8>
35 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_si16 = fptosi <vscale x 2 x float> undef to <vscale x 2 x i16>
36 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_ui16 = fptoui <vscale x 2 x float> undef to <vscale x 2 x i16>
37 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_si64 = fptosi <vscale x 2 x float> undef to <vscale x 2 x i64>
38 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f32_to_ui64 = fptoui <vscale x 2 x float> undef to <vscale x 2 x i64>
39 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_si8 = fptosi <vscale x 2 x double> undef to <vscale x 2 x i8>
40 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_ui8 = fptoui <vscale x 2 x double> undef to <vscale x 2 x i8>
41 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_si16 = fptosi <vscale x 2 x double> undef to <vscale x 2 x i16>
42 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_ui16 = fptoui <vscale x 2 x double> undef to <vscale x 2 x i16>
43 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_si32 = fptosi <vscale x 2 x double> undef to <vscale x 2 x i32>
44 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv2f64_to_ui32 = fptoui <vscale x 2 x double> undef to <vscale x 2 x i32>
45 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f16_to_si8 = fptosi <vscale x 4 x half> undef to <vscale x 4 x i8>
46 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f16_to_ui8 = fptoui <vscale x 4 x half> undef to <vscale x 4 x i8>
47 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f16_to_si32 = fptosi <vscale x 4 x half> undef to <vscale x 4 x i32>
48 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f16_to_ui32 = fptoui <vscale x 4 x half> undef to <vscale x 4 x i32>
49 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv4f16_to_si64 = fptosi <vscale x 4 x half> undef to <vscale x 4 x i64>
50 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv4f16_to_ui64 = fptoui <vscale x 4 x half> undef to <vscale x 4 x i64>
51 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f32_to_si8 = fptosi <vscale x 4 x float> undef to <vscale x 4 x i8>
52 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f32_to_ui8 = fptoui <vscale x 4 x float> undef to <vscale x 4 x i8>
53 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f32_to_si16 = fptosi <vscale x 4 x float> undef to <vscale x 4 x i16>
54 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv4f32_to_ui16 = fptoui <vscale x 4 x float> undef to <vscale x 4 x i16>
55 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv4f32_to_si64 = fptosi <vscale x 4 x float> undef to <vscale x 4 x i64>
56 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv4f32_to_ui64 = fptoui <vscale x 4 x float> undef to <vscale x 4 x i64>
57 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_si8 = fptosi <vscale x 4 x double> undef to <vscale x 4 x i8>
58 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_ui8 = fptoui <vscale x 4 x double> undef to <vscale x 4 x i8>
59 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_si16 = fptosi <vscale x 4 x double> undef to <vscale x 4 x i16>
60 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_ui16 = fptoui <vscale x 4 x double> undef to <vscale x 4 x i16>
61 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_si32 = fptosi <vscale x 4 x double> undef to <vscale x 4 x i32>
62 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv4f64_to_ui32 = fptoui <vscale x 4 x double> undef to <vscale x 4 x i32>
63 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv8f16_to_si8 = fptosi <vscale x 8 x half> undef to <vscale x 8 x i8>
64 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nv8f16_to_ui8 = fptoui <vscale x 8 x half> undef to <vscale x 8 x i8>
65 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv8f16_to_si32 = fptosi <vscale x 8 x half> undef to <vscale x 8 x i32>
66 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nv8f16_to_ui32 = fptoui <vscale x 8 x half> undef to <vscale x 8 x i32>
67 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %nv8f16_to_si64 = fptosi <vscale x 8 x half> undef to <vscale x 8 x i64>
68 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %nv8f16_to_ui64 = fptoui <vscale x 8 x half> undef to <vscale x 8 x i64>
69 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv8f32_to_si8 = fptosi <vscale x 8 x float> undef to <vscale x 8 x i8>
70 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv8f32_to_ui8 = fptoui <vscale x 8 x float> undef to <vscale x 8 x i8>
71 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv8f32_to_si16 = fptosi <vscale x 8 x float> undef to <vscale x 8 x i16>
72 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nv8f32_to_ui16 = fptoui <vscale x 8 x float> undef to <vscale x 8 x i16>
73 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nv8f32_to_si64 = fptosi <vscale x 8 x float> undef to <vscale x 8 x i64>
74 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nv8f32_to_ui64 = fptoui <vscale x 8 x float> undef to <vscale x 8 x i64>
75 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %nv8f64_to_si8 = fptosi <vscale x 8 x double> undef to <vscale x 8 x i8>
76 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %nv8f64_to_ui8 = fptoui <vscale x 8 x double> undef to <vscale x 8 x i8>
77 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %nv8f64_to_si16 = fptosi <vscale x 8 x double> undef to <vscale x 8 x i16>
78 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %nv8f64_to_ui16 = fptoui <vscale x 8 x double> undef to <vscale x 8 x i16>
79 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %nv8f64_to_si32 = fptosi <vscale x 8 x double> undef to <vscale x 8 x i32>
80 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %nv8f64_to_ui32 = fptoui <vscale x 8 x double> undef to <vscale x 8 x i32>
81 ; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
83   %nv1f16_to_si8  = fptosi <vscale x 1 x half> undef to <vscale x 1 x i8>
84   %nv1f16_to_ui8  = fptoui <vscale x 1 x half> undef to <vscale x 1 x i8>
85   %nv1f16_to_si32 = fptosi <vscale x 1 x half> undef to <vscale x 1 x i32>
86   %nv1f16_to_ui32 = fptoui <vscale x 1 x half> undef to <vscale x 1 x i32>
87   %nv1f16_to_si64 = fptosi <vscale x 1 x half> undef to <vscale x 1 x i64>
88   %nv1f16_to_ui64 = fptoui <vscale x 1 x half> undef to <vscale x 1 x i64>
90   %nv1f32_to_si8  = fptosi <vscale x 1 x float> undef to <vscale x 1 x i8>
91   %nv1f32_to_ui8  = fptoui <vscale x 1 x float> undef to <vscale x 1 x i8>
92   %nv1f32_to_si16 = fptosi <vscale x 1 x float> undef to <vscale x 1 x i16>
93   %nv1f32_to_ui16 = fptoui <vscale x 1 x float> undef to <vscale x 1 x i16>
94   %nv1f32_to_si64 = fptosi <vscale x 1 x float> undef to <vscale x 1 x i64>
95   %nv1f32_to_ui64 = fptoui <vscale x 1 x float> undef to <vscale x 1 x i64>
97   %nv1f64_to_si8  = fptosi <vscale x 1 x double> undef to <vscale x 1 x i8>
98   %nv1f64_to_ui8  = fptoui <vscale x 1 x double> undef to <vscale x 1 x i8>
99   %nv1f64_to_si16 = fptosi <vscale x 1 x double> undef to <vscale x 1 x i16>
100   %nv1f64_to_ui16 = fptoui <vscale x 1 x double> undef to <vscale x 1 x i16>
101   %nv1f64_to_si32 = fptosi <vscale x 1 x double> undef to <vscale x 1 x i32>
102   %nv1f64_to_ui32 = fptoui <vscale x 1 x double> undef to <vscale x 1 x i32>
104   %nv2f16_to_si8  = fptosi <vscale x 2 x half> undef to <vscale x 2 x i8>
105   %nv2f16_to_ui8  = fptoui <vscale x 2 x half> undef to <vscale x 2 x i8>
106   %nv2f16_to_si32 = fptosi <vscale x 2 x half> undef to <vscale x 2 x i32>
107   %nv2f16_to_ui32 = fptoui <vscale x 2 x half> undef to <vscale x 2 x i32>
108   %nv2f16_to_si64 = fptosi <vscale x 2 x half> undef to <vscale x 2 x i64>
109   %nv2f16_to_ui64 = fptoui <vscale x 2 x half> undef to <vscale x 2 x i64>
111   %nv2f32_to_si8  = fptosi <vscale x 2 x float> undef to <vscale x 2 x i8>
112   %nv2f32_to_ui8  = fptoui <vscale x 2 x float> undef to <vscale x 2 x i8>
113   %nv2f32_to_si16 = fptosi <vscale x 2 x float> undef to <vscale x 2 x i16>
114   %nv2f32_to_ui16 = fptoui <vscale x 2 x float> undef to <vscale x 2 x i16>
115   %nv2f32_to_si64 = fptosi <vscale x 2 x float> undef to <vscale x 2 x i64>
116   %nv2f32_to_ui64 = fptoui <vscale x 2 x float> undef to <vscale x 2 x i64>
118   %nv2f64_to_si8  = fptosi <vscale x 2 x double> undef to <vscale x 2 x i8>
119   %nv2f64_to_ui8  = fptoui <vscale x 2 x double> undef to <vscale x 2 x i8>
120   %nv2f64_to_si16 = fptosi <vscale x 2 x double> undef to <vscale x 2 x i16>
121   %nv2f64_to_ui16 = fptoui <vscale x 2 x double> undef to <vscale x 2 x i16>
122   %nv2f64_to_si32 = fptosi <vscale x 2 x double> undef to <vscale x 2 x i32>
123   %nv2f64_to_ui32 = fptoui <vscale x 2 x double> undef to <vscale x 2 x i32>
125   %nv4f16_to_si8  = fptosi <vscale x 4 x half> undef to <vscale x 4 x i8>
126   %nv4f16_to_ui8  = fptoui <vscale x 4 x half> undef to <vscale x 4 x i8>
127   %nv4f16_to_si32 = fptosi <vscale x 4 x half> undef to <vscale x 4 x i32>
128   %nv4f16_to_ui32 = fptoui <vscale x 4 x half> undef to <vscale x 4 x i32>
129   %nv4f16_to_si64 = fptosi <vscale x 4 x half> undef to <vscale x 4 x i64>
130   %nv4f16_to_ui64 = fptoui <vscale x 4 x half> undef to <vscale x 4 x i64>
132   %nv4f32_to_si8  = fptosi <vscale x 4 x float> undef to <vscale x 4 x i8>
133   %nv4f32_to_ui8  = fptoui <vscale x 4 x float> undef to <vscale x 4 x i8>
134   %nv4f32_to_si16 = fptosi <vscale x 4 x float> undef to <vscale x 4 x i16>
135   %nv4f32_to_ui16 = fptoui <vscale x 4 x float> undef to <vscale x 4 x i16>
136   %nv4f32_to_si64 = fptosi <vscale x 4 x float> undef to <vscale x 4 x i64>
137   %nv4f32_to_ui64 = fptoui <vscale x 4 x float> undef to <vscale x 4 x i64>
139   %nv4f64_to_si8  = fptosi <vscale x 4 x double> undef to <vscale x 4 x i8>
140   %nv4f64_to_ui8  = fptoui <vscale x 4 x double> undef to <vscale x 4 x i8>
141   %nv4f64_to_si16 = fptosi <vscale x 4 x double> undef to <vscale x 4 x i16>
142   %nv4f64_to_ui16 = fptoui <vscale x 4 x double> undef to <vscale x 4 x i16>
143   %nv4f64_to_si32 = fptosi <vscale x 4 x double> undef to <vscale x 4 x i32>
144   %nv4f64_to_ui32 = fptoui <vscale x 4 x double> undef to <vscale x 4 x i32>
146   %nv8f16_to_si8  = fptosi <vscale x 8 x half> undef to <vscale x 8 x i8>
147   %nv8f16_to_ui8  = fptoui <vscale x 8 x half> undef to <vscale x 8 x i8>
148   %nv8f16_to_si32 = fptosi <vscale x 8 x half> undef to <vscale x 8 x i32>
149   %nv8f16_to_ui32 = fptoui <vscale x 8 x half> undef to <vscale x 8 x i32>
150   %nv8f16_to_si64 = fptosi <vscale x 8 x half> undef to <vscale x 8 x i64>
151   %nv8f16_to_ui64 = fptoui <vscale x 8 x half> undef to <vscale x 8 x i64>
153   %nv8f32_to_si8  = fptosi <vscale x 8 x float> undef to <vscale x 8 x i8>
154   %nv8f32_to_ui8  = fptoui <vscale x 8 x float> undef to <vscale x 8 x i8>
155   %nv8f32_to_si16 = fptosi <vscale x 8 x float> undef to <vscale x 8 x i16>
156   %nv8f32_to_ui16 = fptoui <vscale x 8 x float> undef to <vscale x 8 x i16>
157   %nv8f32_to_si64 = fptosi <vscale x 8 x float> undef to <vscale x 8 x i64>
158   %nv8f32_to_ui64 = fptoui <vscale x 8 x float> undef to <vscale x 8 x i64>
160   %nv8f64_to_si8  = fptosi <vscale x 8 x double> undef to <vscale x 8 x i8>
161   %nv8f64_to_ui8  = fptoui <vscale x 8 x double> undef to <vscale x 8 x i8>
162   %nv8f64_to_si16 = fptosi <vscale x 8 x double> undef to <vscale x 8 x i16>
163   %nv8f64_to_ui16 = fptoui <vscale x 8 x double> undef to <vscale x 8 x i16>
164   %nv8f64_to_si32 = fptosi <vscale x 8 x double> undef to <vscale x 8 x i32>
165   %nv8f64_to_ui32 = fptoui <vscale x 8 x double> undef to <vscale x 8 x i32>
167   ret void