44 lines · plain
1; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s2;3; Costs for conversion of i1 vectors to vectors of double.4 5define <2 x double> @fun0(<2 x i8> %val1, <2 x i8> %val2) {6 %cmp = icmp eq <2 x i8> %val1, %val27 %v = uitofp <2 x i1> %cmp to <2 x double>8 ret <2 x double> %v9 10; CHECK: fun011; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val212; CHECK: cost of 5 for instruction: %v = uitofp <2 x i1> %cmp to <2 x double>13}14 15define <2 x double> @fun1(<2 x i8> %val1, <2 x i8> %val2) {16 %cmp = icmp eq <2 x i8> %val1, %val217 %v = sitofp <2 x i1> %cmp to <2 x double>18 ret <2 x double> %v19 20; CHECK: fun121; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val222; CHECK: cost of 4 for instruction: %v = sitofp <2 x i1> %cmp to <2 x double>23}24 25define <2 x double> @fun2(<2 x i64> %val1, <2 x i64> %val2) {26 %cmp = icmp eq <2 x i64> %val1, %val227 %v = uitofp <2 x i1> %cmp to <2 x double>28 ret <2 x double> %v29 30; CHECK: fun231; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val232; CHECK: cost of 2 for instruction: %v = uitofp <2 x i1> %cmp to <2 x double>33}34 35define <2 x double> @fun3(<2 x i64> %val1, <2 x i64> %val2) {36 %cmp = icmp eq <2 x i64> %val1, %val237 %v = sitofp <2 x i1> %cmp to <2 x double>38 ret <2 x double> %v39 40; CHECK: fun341; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val242; CHECK: cost of 1 for instruction: %v = sitofp <2 x i1> %cmp to <2 x double>43}44