xref: /llvm-project/llvm/test/Analysis/CostModel/SystemZ/cmp-tofp.ll (revision 4178e33470763b406f614b646c8b01d24309e20b)
1*4178e334SSimon Pilgrim; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s
2f15a53bcSJonas Paulsson;
3f15a53bcSJonas Paulsson; Costs for conversion of i1 vectors to vectors of double.
4f15a53bcSJonas Paulsson
5f15a53bcSJonas Paulssondefine <2 x double> @fun0(<2 x i8> %val1, <2 x i8> %val2) {
6f15a53bcSJonas Paulsson  %cmp = icmp eq <2 x i8> %val1, %val2
7f15a53bcSJonas Paulsson  %v = uitofp <2 x i1> %cmp to <2 x double>
8f15a53bcSJonas Paulsson  ret <2 x double> %v
9f15a53bcSJonas Paulsson
10f15a53bcSJonas Paulsson; CHECK: fun0
11f15a53bcSJonas Paulsson; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
12f15a53bcSJonas Paulsson; CHECK: cost of 5 for instruction:   %v = uitofp <2 x i1> %cmp to <2 x double>
13f15a53bcSJonas Paulsson}
14f15a53bcSJonas Paulsson
15f15a53bcSJonas Paulssondefine <2 x double> @fun1(<2 x i8> %val1, <2 x i8> %val2) {
16f15a53bcSJonas Paulsson  %cmp = icmp eq <2 x i8> %val1, %val2
17f15a53bcSJonas Paulsson  %v = sitofp <2 x i1> %cmp to <2 x double>
18f15a53bcSJonas Paulsson  ret <2 x double> %v
19f15a53bcSJonas Paulsson
20f15a53bcSJonas Paulsson; CHECK: fun1
21f15a53bcSJonas Paulsson; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
22f15a53bcSJonas Paulsson; CHECK: cost of 4 for instruction:   %v = sitofp <2 x i1> %cmp to <2 x double>
23f15a53bcSJonas Paulsson}
24f15a53bcSJonas Paulsson
25f15a53bcSJonas Paulssondefine <2 x double> @fun2(<2 x i64> %val1, <2 x i64> %val2) {
26f15a53bcSJonas Paulsson  %cmp = icmp eq <2 x i64> %val1, %val2
27f15a53bcSJonas Paulsson  %v = uitofp <2 x i1> %cmp to <2 x double>
28f15a53bcSJonas Paulsson  ret <2 x double> %v
29f15a53bcSJonas Paulsson
30f15a53bcSJonas Paulsson; CHECK: fun2
31f15a53bcSJonas Paulsson; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
32f15a53bcSJonas Paulsson; CHECK: cost of 2 for instruction:   %v = uitofp <2 x i1> %cmp to <2 x double>
33f15a53bcSJonas Paulsson}
34f15a53bcSJonas Paulsson
35f15a53bcSJonas Paulssondefine <2 x double> @fun3(<2 x i64> %val1, <2 x i64> %val2) {
36f15a53bcSJonas Paulsson  %cmp = icmp eq <2 x i64> %val1, %val2
37f15a53bcSJonas Paulsson  %v = sitofp <2 x i1> %cmp to <2 x double>
38f15a53bcSJonas Paulsson  ret <2 x double> %v
39f15a53bcSJonas Paulsson
40f15a53bcSJonas Paulsson; CHECK: fun3
41f15a53bcSJonas Paulsson; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
42f15a53bcSJonas Paulsson; CHECK: cost of 1 for instruction:   %v = sitofp <2 x i1> %cmp to <2 x double>
43f15a53bcSJonas Paulsson}
44