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