14178e334SSimon Pilgrim; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 \ 2b1d01488SJonas Paulsson; RUN: | FileCheck %s 3b1d01488SJonas Paulsson; 4b1d01488SJonas Paulsson; Test that i8/i16 operands get extra costs for extensions to i32 only in 5b1d01488SJonas Paulsson; cases where this is needed. 6b1d01488SJonas Paulsson 7b1d01488SJonas Paulssondefine void @icmp() { 8*68c50b11SNikita Popov %li8_0 = load i8, ptr undef 9*68c50b11SNikita Popov %li8_1 = load i8, ptr undef 10b1d01488SJonas Paulsson icmp slt i8 %li8_0, %li8_1 11b1d01488SJonas Paulsson 12b1d01488SJonas Paulsson %a0 = add i8 %li8_0, 1 13b1d01488SJonas Paulsson %a1 = add i8 %li8_1, 1 14b1d01488SJonas Paulsson icmp slt i8 %a0, %a1 15b1d01488SJonas Paulsson 16b1d01488SJonas Paulsson icmp slt i8 %a0, 123 17b1d01488SJonas Paulsson 18*68c50b11SNikita Popov %li16_0 = load i16, ptr undef 19*68c50b11SNikita Popov %li16_1 = load i16, ptr undef 20b1d01488SJonas Paulsson icmp slt i16 %li16_0, %li16_1 21b1d01488SJonas Paulsson 22b1d01488SJonas Paulsson %a2 = add i16 %li16_0, 1 23b1d01488SJonas Paulsson %a3 = add i16 %li16_1, 1 24b1d01488SJonas Paulsson icmp slt i16 %a2, %a3 25b1d01488SJonas Paulsson 26b1d01488SJonas Paulsson icmp slt i16 %a2, 123 27b1d01488SJonas Paulsson 28b1d01488SJonas Paulsson ret void; 2915ba588dSArthur Eubanks; CHECK: function 'icmp' 30*68c50b11SNikita Popov; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %li8_0 = load i8, ptr undef 31*68c50b11SNikita Popov; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %li8_1 = load i8, ptr undef 32b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %1 = icmp slt i8 %li8_0, %li8_1 33b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %a0 = add i8 %li8_0, 1 34b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %a1 = add i8 %li8_1, 1 35b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 3 for instruction: %2 = icmp slt i8 %a0, %a1 36b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %3 = icmp slt i8 %a0, 123 37*68c50b11SNikita Popov; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %li16_0 = load i16, ptr undef 38*68c50b11SNikita Popov; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %li16_1 = load i16, ptr undef 39b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %4 = icmp slt i16 %li16_0, %li16_1 40b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %a2 = add i16 %li16_0, 1 41b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %a3 = add i16 %li16_1, 1 42b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 3 for instruction: %5 = icmp slt i16 %a2, %a3 43b1d01488SJonas Paulsson; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %6 = icmp slt i16 %a2, 123 442596da31SSam Parker; CHECK: Cost Model: Found an estimated cost of 1 for instruction: ret void 45b1d01488SJonas Paulsson} 46