1; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 \ 2; RUN: | FileCheck -check-prefix=CHECK -check-prefix=CHECK-Z13 %s 3; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z14 \ 4; RUN: | FileCheck -check-prefix=CHECK -check-prefix=CHECK-Z14 %s 5; 6; Note: The scalarized vector instructions cost is not including any 7; extracts, due to the undef operands 8; 9; Note: FRem is implemented with libcall, so not included here. 10 11define void @fadd() { 12 %res0 = fadd float undef, undef 13 %res1 = fadd double undef, undef 14 %res2 = fadd fp128 undef, undef 15 %res3 = fadd <2 x float> undef, undef 16 %res4 = fadd <2 x double> undef, undef 17 %res5 = fadd <4 x float> undef, undef 18 %res6 = fadd <4 x double> undef, undef 19 %res7 = fadd <8 x float> undef, undef 20 %res8 = fadd <8 x double> undef, undef 21 %res9 = fadd <16 x float> undef, undef 22 %res10 = fadd <16 x double> undef, undef 23 24; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fadd float undef, undef 25; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fadd double undef, undef 26; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fadd fp128 undef, undef 27; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fadd <2 x float> undef, undef 28; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fadd <2 x float> undef, undef 29; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fadd <2 x double> undef, undef 30; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fadd <4 x float> undef, undef 31; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fadd <4 x float> undef, undef 32; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fadd <4 x double> undef, undef 33; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fadd <8 x float> undef, undef 34; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fadd <8 x float> undef, undef 35; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fadd <8 x double> undef, undef 36; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fadd <16 x float> undef, undef 37; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fadd <16 x float> undef, undef 38; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fadd <16 x double> undef, undef 39 40 ret void; 41} 42 43define void @fsub() { 44 %res0 = fsub float undef, undef 45 %res1 = fsub double undef, undef 46 %res2 = fsub fp128 undef, undef 47 %res3 = fsub <2 x float> undef, undef 48 %res4 = fsub <2 x double> undef, undef 49 %res5 = fsub <4 x float> undef, undef 50 %res6 = fsub <4 x double> undef, undef 51 %res7 = fsub <8 x float> undef, undef 52 %res8 = fsub <8 x double> undef, undef 53 %res9 = fsub <16 x float> undef, undef 54 %res10 = fsub <16 x double> undef, undef 55 56; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fsub float undef, undef 57; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fsub double undef, undef 58; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fsub fp128 undef, undef 59; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fsub <2 x float> undef, undef 60; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fsub <2 x float> undef, undef 61; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fsub <2 x double> undef, undef 62; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fsub <4 x float> undef, undef 63; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fsub <4 x float> undef, undef 64; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fsub <4 x double> undef, undef 65; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fsub <8 x float> undef, undef 66; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fsub <8 x float> undef, undef 67; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fsub <8 x double> undef, undef 68; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fsub <16 x float> undef, undef 69; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fsub <16 x float> undef, undef 70; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fsub <16 x double> undef, undef 71 72 ret void; 73} 74 75define void @fmul() { 76 %res0 = fmul float undef, undef 77 %res1 = fmul double undef, undef 78 %res2 = fmul fp128 undef, undef 79 %res3 = fmul <2 x float> undef, undef 80 %res4 = fmul <2 x double> undef, undef 81 %res5 = fmul <4 x float> undef, undef 82 %res6 = fmul <4 x double> undef, undef 83 %res7 = fmul <8 x float> undef, undef 84 %res8 = fmul <8 x double> undef, undef 85 %res9 = fmul <16 x float> undef, undef 86 %res10 = fmul <16 x double> undef, undef 87 88; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fmul float undef, undef 89; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fmul double undef, undef 90; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fmul fp128 undef, undef 91; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fmul <2 x float> undef, undef 92; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fmul <2 x float> undef, undef 93; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fmul <2 x double> undef, undef 94; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fmul <4 x float> undef, undef 95; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fmul <4 x float> undef, undef 96; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fmul <4 x double> undef, undef 97; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fmul <8 x float> undef, undef 98; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fmul <8 x float> undef, undef 99; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fmul <8 x double> undef, undef 100; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fmul <16 x float> undef, undef 101; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fmul <16 x float> undef, undef 102; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fmul <16 x double> undef, undef 103 104 ret void; 105} 106 107define void @fdiv() { 108 %res0 = fdiv float undef, undef 109 %res1 = fdiv double undef, undef 110 %res2 = fdiv fp128 undef, undef 111 %res3 = fdiv <2 x float> undef, undef 112 %res4 = fdiv <2 x double> undef, undef 113 %res5 = fdiv <4 x float> undef, undef 114 %res6 = fdiv <4 x double> undef, undef 115 %res7 = fdiv <8 x float> undef, undef 116 %res8 = fdiv <8 x double> undef, undef 117 %res9 = fdiv <16 x float> undef, undef 118 %res10 = fdiv <16 x double> undef, undef 119 120; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = fdiv float undef, undef 121; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = fdiv double undef, undef 122; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = fdiv fp128 undef, undef 123; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res3 = fdiv <2 x float> undef, undef 124; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res3 = fdiv <2 x float> undef, undef 125; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = fdiv <2 x double> undef, undef 126; CHECK-Z13: Cost Model: Found an estimated cost of 8 for instruction: %res5 = fdiv <4 x float> undef, undef 127; CHECK-Z14: Cost Model: Found an estimated cost of 1 for instruction: %res5 = fdiv <4 x float> undef, undef 128; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res6 = fdiv <4 x double> undef, undef 129; CHECK-Z13: Cost Model: Found an estimated cost of 16 for instruction: %res7 = fdiv <8 x float> undef, undef 130; CHECK-Z14: Cost Model: Found an estimated cost of 2 for instruction: %res7 = fdiv <8 x float> undef, undef 131; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res8 = fdiv <8 x double> undef, undef 132; CHECK-Z13: Cost Model: Found an estimated cost of 32 for instruction: %res9 = fdiv <16 x float> undef, undef 133; CHECK-Z14: Cost Model: Found an estimated cost of 4 for instruction: %res9 = fdiv <16 x float> undef, undef 134; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res10 = fdiv <16 x double> undef, undef 135 136 ret void; 137} 138 139