2114 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 < %s | FileCheck %s3 4target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"5 6define void @extaddv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {7; CHECK-LABEL: 'extaddv1'8; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext i8 %i8 to i169; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = add i16 %i16, %sw_8_1610; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext i8 %i8 to i1611; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext i8 %i8 to i1612; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = add i16 %sl1_8_16, %sl2_8_1613; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext i8 %i8 to i1614; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = add i16 %i16, %zw_8_1615; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext i8 %i8 to i1616; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext i8 %i8 to i1617; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = add i16 %zl1_8_16, %zl2_8_1618; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext i8 %i8 to i3219; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = add i32 %i32, %sw_8_3220; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext i8 %i8 to i3221; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext i8 %i8 to i3222; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = add i32 %sl1_8_32, %sl2_8_3223; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext i8 %i8 to i3224; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = add i32 %i32, %zw_8_3225; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext i8 %i8 to i3226; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext i8 %i8 to i3227; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = add i32 %zl1_8_32, %zl2_8_3228; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext i8 %i8 to i6429; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_64 = add i64 %i64, %sw_8_6430; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext i8 %i8 to i6431; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext i8 %i8 to i6432; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_64 = add i64 %sl1_8_64, %sl2_8_6433; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_64 = zext i8 %i8 to i6434; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_64 = add i64 %i64, %zw_8_6435; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext i8 %i8 to i6436; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext i8 %i8 to i6437; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_64 = add i64 %zl1_8_64, %zl2_8_6438; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext i16 %i16 to i3239; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = add i32 %i32, %sw_16_3240; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext i16 %i16 to i3241; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext i16 %i16 to i3242; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = add i32 %sl1_16_32, %sl2_16_3243; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext i16 %i16 to i3244; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = add i32 %i32, %zw_16_3245; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext i16 %i16 to i3246; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext i16 %i16 to i3247; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = add i32 %zl1_16_32, %zl2_16_3248; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext i16 %i16 to i6449; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_64 = add i64 %i64, %sw_16_6450; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext i16 %i16 to i6451; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext i16 %i16 to i6452; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_64 = add i64 %sl1_16_64, %sl2_16_6453; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_64 = zext i16 %i16 to i6454; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_64 = add i64 %i64, %zw_16_6455; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext i16 %i16 to i6456; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext i16 %i16 to i6457; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_64 = add i64 %zl1_16_64, %zl2_16_6458; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_32_64 = sext i32 %i32 to i6459; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_32_64 = add i64 %i64, %sw_32_6460; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_32_64 = sext i32 %i32 to i6461; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_32_64 = sext i32 %i32 to i6462; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = add i64 %sl1_32_64, %sl2_32_6463; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext i32 %i32 to i6464; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_32_64 = add i64 %i64, %zw_32_6465; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext i32 %i32 to i6466; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext i32 %i32 to i6467; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = add i64 %zl1_32_64, %zl2_32_6468; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void69;70 %sw_8_16 = sext i8 %i8 to i1671 %asw_8_16 = add i16 %i16, %sw_8_1672 %sl1_8_16 = sext i8 %i8 to i1673 %sl2_8_16 = sext i8 %i8 to i1674 %asl_8_16 = add i16 %sl1_8_16, %sl2_8_1675 76 %zw_8_16 = zext i8 %i8 to i1677 %azw_8_16 = add i16 %i16, %zw_8_1678 %zl1_8_16 = zext i8 %i8 to i1679 %zl2_8_16 = zext i8 %i8 to i1680 %azl_8_16 = add i16 %zl1_8_16, %zl2_8_1681 82 %sw_8_32 = sext i8 %i8 to i3283 %asw_8_32 = add i32 %i32, %sw_8_3284 %sl1_8_32 = sext i8 %i8 to i3285 %sl2_8_32 = sext i8 %i8 to i3286 %asl_8_32 = add i32 %sl1_8_32, %sl2_8_3287 88 %zw_8_32 = zext i8 %i8 to i3289 %azw_8_32 = add i32 %i32, %zw_8_3290 %zl1_8_32 = zext i8 %i8 to i3291 %zl2_8_32 = zext i8 %i8 to i3292 %azl_8_32 = add i32 %zl1_8_32, %zl2_8_3293 94 %sw_8_64 = sext i8 %i8 to i6495 %asw_8_64 = add i64 %i64, %sw_8_6496 %sl1_8_64 = sext i8 %i8 to i6497 %sl2_8_64 = sext i8 %i8 to i6498 %asl_8_64 = add i64 %sl1_8_64, %sl2_8_6499 100 %zw_8_64 = zext i8 %i8 to i64101 %azw_8_64 = add i64 %i64, %zw_8_64102 %zl1_8_64 = zext i8 %i8 to i64103 %zl2_8_64 = zext i8 %i8 to i64104 %azl_8_64 = add i64 %zl1_8_64, %zl2_8_64105 106 %sw_16_32 = sext i16 %i16 to i32107 %asw_16_32 = add i32 %i32, %sw_16_32108 %sl1_16_32 = sext i16 %i16 to i32109 %sl2_16_32 = sext i16 %i16 to i32110 %asl_16_32 = add i32 %sl1_16_32, %sl2_16_32111 112 %zw_16_32 = zext i16 %i16 to i32113 %azw_16_32 = add i32 %i32, %zw_16_32114 %zl1_16_32 = zext i16 %i16 to i32115 %zl2_16_32 = zext i16 %i16 to i32116 %azl_16_32 = add i32 %zl1_16_32, %zl2_16_32117 118 %sw_16_64 = sext i16 %i16 to i64119 %asw_16_64 = add i64 %i64, %sw_16_64120 %sl1_16_64 = sext i16 %i16 to i64121 %sl2_16_64 = sext i16 %i16 to i64122 %asl_16_64 = add i64 %sl1_16_64, %sl2_16_64123 124 %zw_16_64 = zext i16 %i16 to i64125 %azw_16_64 = add i64 %i64, %zw_16_64126 %zl1_16_64 = zext i16 %i16 to i64127 %zl2_16_64 = zext i16 %i16 to i64128 %azl_16_64 = add i64 %zl1_16_64, %zl2_16_64129 130 %sw_32_64 = sext i32 %i32 to i64131 %asw_32_64 = add i64 %i64, %sw_32_64132 %sl1_32_64 = sext i32 %i32 to i64133 %sl2_32_64 = sext i32 %i32 to i64134 %asl_32_64 = add i64 %sl1_32_64, %sl2_32_64135 136 %zw_32_64 = zext i32 %i32 to i64137 %azw_32_64 = add i64 %i64, %zw_32_64138 %zl1_32_64 = zext i32 %i32 to i64139 %zl2_32_64 = zext i32 %i32 to i64140 %azl_32_64 = add i64 %zl1_32_64, %zl2_32_64141 142 ret void143}144 145define void @extaddv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {146; CHECK-LABEL: 'extaddv2'147; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>148; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = add <2 x i16> %i16, %sw_8_16149; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>150; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>151; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = add <2 x i16> %sl1_8_16, %sl2_8_16152; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>153; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = add <2 x i16> %i16, %zw_8_16154; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>155; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>156; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = add <2 x i16> %zl1_8_16, %zl2_8_16157; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>158; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = add <2 x i32> %i32, %sw_8_32159; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>160; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>161; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = add <2 x i32> %sl1_8_32, %sl2_8_32162; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>163; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = add <2 x i32> %i32, %zw_8_32164; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>165; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>166; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = add <2 x i32> %zl1_8_32, %zl2_8_32167; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>168; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_64 = add <2 x i64> %i64, %sw_8_64169; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>170; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>171; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_64 = add <2 x i64> %sl1_8_64, %sl2_8_64172; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>173; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_64 = add <2 x i64> %i64, %zw_8_64174; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>175; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>176; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_64 = add <2 x i64> %zl1_8_64, %zl2_8_64177; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>178; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = add <2 x i32> %i32, %sw_16_32179; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>180; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>181; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = add <2 x i32> %sl1_16_32, %sl2_16_32182; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>183; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = add <2 x i32> %i32, %zw_16_32184; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>185; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>186; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = add <2 x i32> %zl1_16_32, %zl2_16_32187; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>188; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_64 = add <2 x i64> %i64, %sw_16_64189; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>190; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>191; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_64 = add <2 x i64> %sl1_16_64, %sl2_16_64192; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>193; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_64 = add <2 x i64> %i64, %zw_16_64194; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>195; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>196; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_64 = add <2 x i64> %zl1_16_64, %zl2_16_64197; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>198; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_32_64 = add <2 x i64> %i64, %sw_32_64199; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>200; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>201; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = add <2 x i64> %sl1_32_64, %sl2_32_64202; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>203; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_32_64 = add <2 x i64> %i64, %zw_32_64204; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>205; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>206; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = add <2 x i64> %zl1_32_64, %zl2_32_64207; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void208;209 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>210 %asw_8_16 = add <2 x i16> %i16, %sw_8_16211 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>212 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>213 %asl_8_16 = add <2 x i16> %sl1_8_16, %sl2_8_16214 215 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>216 %azw_8_16 = add <2 x i16> %i16, %zw_8_16217 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>218 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>219 %azl_8_16 = add <2 x i16> %zl1_8_16, %zl2_8_16220 221 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>222 %asw_8_32 = add <2 x i32> %i32, %sw_8_32223 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>224 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>225 %asl_8_32 = add <2 x i32> %sl1_8_32, %sl2_8_32226 227 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>228 %azw_8_32 = add <2 x i32> %i32, %zw_8_32229 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>230 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>231 %azl_8_32 = add <2 x i32> %zl1_8_32, %zl2_8_32232 233 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>234 %asw_8_64 = add <2 x i64> %i64, %sw_8_64235 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>236 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>237 %asl_8_64 = add <2 x i64> %sl1_8_64, %sl2_8_64238 239 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>240 %azw_8_64 = add <2 x i64> %i64, %zw_8_64241 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>242 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>243 %azl_8_64 = add <2 x i64> %zl1_8_64, %zl2_8_64244 245 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>246 %asw_16_32 = add <2 x i32> %i32, %sw_16_32247 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>248 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>249 %asl_16_32 = add <2 x i32> %sl1_16_32, %sl2_16_32250 251 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>252 %azw_16_32 = add <2 x i32> %i32, %zw_16_32253 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>254 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>255 %azl_16_32 = add <2 x i32> %zl1_16_32, %zl2_16_32256 257 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>258 %asw_16_64 = add <2 x i64> %i64, %sw_16_64259 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>260 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>261 %asl_16_64 = add <2 x i64> %sl1_16_64, %sl2_16_64262 263 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>264 %azw_16_64 = add <2 x i64> %i64, %zw_16_64265 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>266 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>267 %azl_16_64 = add <2 x i64> %zl1_16_64, %zl2_16_64268 269 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>270 %asw_32_64 = add <2 x i64> %i64, %sw_32_64271 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>272 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>273 %asl_32_64 = add <2 x i64> %sl1_32_64, %sl2_32_64274 275 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>276 %azw_32_64 = add <2 x i64> %i64, %zw_32_64277 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>278 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>279 %azl_32_64 = add <2 x i64> %zl1_32_64, %zl2_32_64280 281 ret void282}283 284define void @extaddv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {285; CHECK-LABEL: 'extaddv4'286; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>287; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = add <4 x i16> %i16, %sw_8_16288; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>289; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>290; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = add <4 x i16> %sl1_8_16, %sl2_8_16291; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>292; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = add <4 x i16> %i16, %zw_8_16293; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>294; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>295; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = add <4 x i16> %zl1_8_16, %zl2_8_16296; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>297; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = add <4 x i32> %i32, %sw_8_32298; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>299; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>300; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = add <4 x i32> %sl1_8_32, %sl2_8_32301; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>302; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = add <4 x i32> %i32, %zw_8_32303; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>304; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>305; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = add <4 x i32> %zl1_8_32, %zl2_8_32306; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>307; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = add <4 x i64> %i64, %sw_8_64308; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>309; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>310; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = add <4 x i64> %sl1_8_64, %sl2_8_64311; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>312; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = add <4 x i64> %i64, %zw_8_64313; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>314; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>315; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = add <4 x i64> %zl1_8_64, %zl2_8_64316; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>317; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = add <4 x i32> %i32, %sw_16_32318; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>319; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>320; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = add <4 x i32> %sl1_16_32, %sl2_16_32321; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>322; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = add <4 x i32> %i32, %zw_16_32323; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>324; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>325; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = add <4 x i32> %zl1_16_32, %zl2_16_32326; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>327; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = add <4 x i64> %i64, %sw_16_64328; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>329; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>330; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = add <4 x i64> %sl1_16_64, %sl2_16_64331; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>332; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = add <4 x i64> %i64, %zw_16_64333; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>334; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>335; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = add <4 x i64> %zl1_16_64, %zl2_16_64336; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>337; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = add <4 x i64> %i64, %sw_32_64338; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>339; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>340; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = add <4 x i64> %sl1_32_64, %sl2_32_64341; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>342; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = add <4 x i64> %i64, %zw_32_64343; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>344; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>345; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = add <4 x i64> %zl1_32_64, %zl2_32_64346; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void347;348 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>349 %asw_8_16 = add <4 x i16> %i16, %sw_8_16350 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>351 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>352 %asl_8_16 = add <4 x i16> %sl1_8_16, %sl2_8_16353 354 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>355 %azw_8_16 = add <4 x i16> %i16, %zw_8_16356 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>357 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>358 %azl_8_16 = add <4 x i16> %zl1_8_16, %zl2_8_16359 360 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>361 %asw_8_32 = add <4 x i32> %i32, %sw_8_32362 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>363 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>364 %asl_8_32 = add <4 x i32> %sl1_8_32, %sl2_8_32365 366 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>367 %azw_8_32 = add <4 x i32> %i32, %zw_8_32368 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>369 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>370 %azl_8_32 = add <4 x i32> %zl1_8_32, %zl2_8_32371 372 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>373 %asw_8_64 = add <4 x i64> %i64, %sw_8_64374 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>375 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>376 %asl_8_64 = add <4 x i64> %sl1_8_64, %sl2_8_64377 378 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>379 %azw_8_64 = add <4 x i64> %i64, %zw_8_64380 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>381 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>382 %azl_8_64 = add <4 x i64> %zl1_8_64, %zl2_8_64383 384 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>385 %asw_16_32 = add <4 x i32> %i32, %sw_16_32386 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>387 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>388 %asl_16_32 = add <4 x i32> %sl1_16_32, %sl2_16_32389 390 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>391 %azw_16_32 = add <4 x i32> %i32, %zw_16_32392 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>393 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>394 %azl_16_32 = add <4 x i32> %zl1_16_32, %zl2_16_32395 396 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>397 %asw_16_64 = add <4 x i64> %i64, %sw_16_64398 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>399 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>400 %asl_16_64 = add <4 x i64> %sl1_16_64, %sl2_16_64401 402 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>403 %azw_16_64 = add <4 x i64> %i64, %zw_16_64404 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>405 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>406 %azl_16_64 = add <4 x i64> %zl1_16_64, %zl2_16_64407 408 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>409 %asw_32_64 = add <4 x i64> %i64, %sw_32_64410 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>411 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>412 %asl_32_64 = add <4 x i64> %sl1_32_64, %sl2_32_64413 414 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>415 %azw_32_64 = add <4 x i64> %i64, %zw_32_64416 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>417 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>418 %azl_32_64 = add <4 x i64> %zl1_32_64, %zl2_32_64419 420 ret void421}422 423define void @extaddv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {424; CHECK-LABEL: 'extaddv8'425; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>426; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = add <8 x i16> %i16, %sw_8_16427; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>428; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>429; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = add <8 x i16> %sl1_8_16, %sl2_8_16430; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>431; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = add <8 x i16> %i16, %zw_8_16432; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>433; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>434; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = add <8 x i16> %zl1_8_16, %zl2_8_16435; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>436; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = add <8 x i32> %i32, %sw_8_32437; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>438; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>439; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = add <8 x i32> %sl1_8_32, %sl2_8_32440; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>441; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = add <8 x i32> %i32, %zw_8_32442; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>443; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>444; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = add <8 x i32> %zl1_8_32, %zl2_8_32445; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>446; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = add <8 x i64> %i64, %sw_8_64447; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>448; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>449; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = add <8 x i64> %sl1_8_64, %sl2_8_64450; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>451; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = add <8 x i64> %i64, %zw_8_64452; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>453; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>454; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = add <8 x i64> %zl1_8_64, %zl2_8_64455; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>456; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = add <8 x i32> %i32, %sw_16_32457; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>458; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>459; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = add <8 x i32> %sl1_16_32, %sl2_16_32460; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>461; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = add <8 x i32> %i32, %zw_16_32462; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>463; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>464; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = add <8 x i32> %zl1_16_32, %zl2_16_32465; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>466; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = add <8 x i64> %i64, %sw_16_64467; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>468; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>469; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = add <8 x i64> %sl1_16_64, %sl2_16_64470; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>471; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = add <8 x i64> %i64, %zw_16_64472; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>473; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>474; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = add <8 x i64> %zl1_16_64, %zl2_16_64475; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>476; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = add <8 x i64> %i64, %sw_32_64477; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>478; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>479; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = add <8 x i64> %sl1_32_64, %sl2_32_64480; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>481; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = add <8 x i64> %i64, %zw_32_64482; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>483; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>484; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = add <8 x i64> %zl1_32_64, %zl2_32_64485; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void486;487 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>488 %asw_8_16 = add <8 x i16> %i16, %sw_8_16489 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>490 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>491 %asl_8_16 = add <8 x i16> %sl1_8_16, %sl2_8_16492 493 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>494 %azw_8_16 = add <8 x i16> %i16, %zw_8_16495 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>496 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>497 %azl_8_16 = add <8 x i16> %zl1_8_16, %zl2_8_16498 499 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>500 %asw_8_32 = add <8 x i32> %i32, %sw_8_32501 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>502 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>503 %asl_8_32 = add <8 x i32> %sl1_8_32, %sl2_8_32504 505 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>506 %azw_8_32 = add <8 x i32> %i32, %zw_8_32507 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>508 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>509 %azl_8_32 = add <8 x i32> %zl1_8_32, %zl2_8_32510 511 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>512 %asw_8_64 = add <8 x i64> %i64, %sw_8_64513 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>514 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>515 %asl_8_64 = add <8 x i64> %sl1_8_64, %sl2_8_64516 517 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>518 %azw_8_64 = add <8 x i64> %i64, %zw_8_64519 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>520 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>521 %azl_8_64 = add <8 x i64> %zl1_8_64, %zl2_8_64522 523 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>524 %asw_16_32 = add <8 x i32> %i32, %sw_16_32525 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>526 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>527 %asl_16_32 = add <8 x i32> %sl1_16_32, %sl2_16_32528 529 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>530 %azw_16_32 = add <8 x i32> %i32, %zw_16_32531 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>532 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>533 %azl_16_32 = add <8 x i32> %zl1_16_32, %zl2_16_32534 535 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>536 %asw_16_64 = add <8 x i64> %i64, %sw_16_64537 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>538 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>539 %asl_16_64 = add <8 x i64> %sl1_16_64, %sl2_16_64540 541 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>542 %azw_16_64 = add <8 x i64> %i64, %zw_16_64543 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>544 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>545 %azl_16_64 = add <8 x i64> %zl1_16_64, %zl2_16_64546 547 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>548 %asw_32_64 = add <8 x i64> %i64, %sw_32_64549 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>550 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>551 %asl_32_64 = add <8 x i64> %sl1_32_64, %sl2_32_64552 553 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>554 %azw_32_64 = add <8 x i64> %i64, %zw_32_64555 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>556 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>557 %azl_32_64 = add <8 x i64> %zl1_32_64, %zl2_32_64558 559 ret void560}561 562define void @extaddv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {563; CHECK-LABEL: 'extaddv16'564; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>565; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_16 = add <16 x i16> %i16, %sw_8_16566; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>567; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>568; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_16 = add <16 x i16> %sl1_8_16, %sl2_8_16569; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>570; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_16 = add <16 x i16> %i16, %zw_8_16571; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>572; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>573; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_16 = add <16 x i16> %zl1_8_16, %zl2_8_16574; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>575; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = add <16 x i32> %i32, %sw_8_32576; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>577; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>578; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = add <16 x i32> %sl1_8_32, %sl2_8_32579; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>580; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = add <16 x i32> %i32, %zw_8_32581; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>582; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>583; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = add <16 x i32> %zl1_8_32, %zl2_8_32584; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>585; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = add <16 x i64> %i64, %sw_8_64586; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>587; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>588; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = add <16 x i64> %sl1_8_64, %sl2_8_64589; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>590; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = add <16 x i64> %i64, %zw_8_64591; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>592; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>593; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = add <16 x i64> %zl1_8_64, %zl2_8_64594; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>595; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = add <16 x i32> %i32, %sw_16_32596; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>597; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>598; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = add <16 x i32> %sl1_16_32, %sl2_16_32599; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>600; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = add <16 x i32> %i32, %zw_16_32601; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>602; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>603; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = add <16 x i32> %zl1_16_32, %zl2_16_32604; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>605; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = add <16 x i64> %i64, %sw_16_64606; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>607; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>608; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = add <16 x i64> %sl1_16_64, %sl2_16_64609; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>610; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = add <16 x i64> %i64, %zw_16_64611; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>612; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>613; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = add <16 x i64> %zl1_16_64, %zl2_16_64614; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>615; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = add <16 x i64> %i64, %sw_32_64616; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>617; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>618; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = add <16 x i64> %sl1_32_64, %sl2_32_64619; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>620; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = add <16 x i64> %i64, %zw_32_64621; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>622; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>623; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = add <16 x i64> %zl1_32_64, %zl2_32_64624; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void625;626 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>627 %asw_8_16 = add <16 x i16> %i16, %sw_8_16628 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>629 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>630 %asl_8_16 = add <16 x i16> %sl1_8_16, %sl2_8_16631 632 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>633 %azw_8_16 = add <16 x i16> %i16, %zw_8_16634 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>635 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>636 %azl_8_16 = add <16 x i16> %zl1_8_16, %zl2_8_16637 638 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>639 %asw_8_32 = add <16 x i32> %i32, %sw_8_32640 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>641 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>642 %asl_8_32 = add <16 x i32> %sl1_8_32, %sl2_8_32643 644 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>645 %azw_8_32 = add <16 x i32> %i32, %zw_8_32646 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>647 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>648 %azl_8_32 = add <16 x i32> %zl1_8_32, %zl2_8_32649 650 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>651 %asw_8_64 = add <16 x i64> %i64, %sw_8_64652 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>653 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>654 %asl_8_64 = add <16 x i64> %sl1_8_64, %sl2_8_64655 656 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>657 %azw_8_64 = add <16 x i64> %i64, %zw_8_64658 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>659 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>660 %azl_8_64 = add <16 x i64> %zl1_8_64, %zl2_8_64661 662 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>663 %asw_16_32 = add <16 x i32> %i32, %sw_16_32664 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>665 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>666 %asl_16_32 = add <16 x i32> %sl1_16_32, %sl2_16_32667 668 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>669 %azw_16_32 = add <16 x i32> %i32, %zw_16_32670 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>671 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>672 %azl_16_32 = add <16 x i32> %zl1_16_32, %zl2_16_32673 674 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>675 %asw_16_64 = add <16 x i64> %i64, %sw_16_64676 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>677 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>678 %asl_16_64 = add <16 x i64> %sl1_16_64, %sl2_16_64679 680 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>681 %azw_16_64 = add <16 x i64> %i64, %zw_16_64682 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>683 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>684 %azl_16_64 = add <16 x i64> %zl1_16_64, %zl2_16_64685 686 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>687 %asw_32_64 = add <16 x i64> %i64, %sw_32_64688 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>689 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>690 %asl_32_64 = add <16 x i64> %sl1_32_64, %sl2_32_64691 692 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>693 %azw_32_64 = add <16 x i64> %i64, %zw_32_64694 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>695 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>696 %azl_32_64 = add <16 x i64> %zl1_32_64, %zl2_32_64697 698 ret void699}700 701define void @extsubv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {702; CHECK-LABEL: 'extsubv1'703; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext i8 %i8 to i16704; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = sub i16 %i16, %sw_8_16705; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext i8 %i8 to i16706; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext i8 %i8 to i16707; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = sub i16 %sl1_8_16, %sl2_8_16708; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext i8 %i8 to i16709; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = sub i16 %i16, %zw_8_16710; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext i8 %i8 to i16711; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext i8 %i8 to i16712; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = sub i16 %zl1_8_16, %zl2_8_16713; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext i8 %i8 to i32714; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = sub i32 %i32, %sw_8_32715; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext i8 %i8 to i32716; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext i8 %i8 to i32717; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = sub i32 %sl1_8_32, %sl2_8_32718; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext i8 %i8 to i32719; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = sub i32 %i32, %zw_8_32720; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext i8 %i8 to i32721; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext i8 %i8 to i32722; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = sub i32 %zl1_8_32, %zl2_8_32723; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext i8 %i8 to i64724; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_64 = sub i64 %i64, %sw_8_64725; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext i8 %i8 to i64726; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext i8 %i8 to i64727; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_64 = sub i64 %sl1_8_64, %sl2_8_64728; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_64 = zext i8 %i8 to i64729; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_64 = sub i64 %i64, %zw_8_64730; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext i8 %i8 to i64731; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext i8 %i8 to i64732; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_64 = sub i64 %zl1_8_64, %zl2_8_64733; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext i16 %i16 to i32734; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = sub i32 %i32, %sw_16_32735; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext i16 %i16 to i32736; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext i16 %i16 to i32737; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = sub i32 %sl1_16_32, %sl2_16_32738; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext i16 %i16 to i32739; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = sub i32 %i32, %zw_16_32740; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext i16 %i16 to i32741; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext i16 %i16 to i32742; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = sub i32 %zl1_16_32, %zl2_16_32743; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext i16 %i16 to i64744; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_64 = sub i64 %i64, %sw_16_64745; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext i16 %i16 to i64746; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext i16 %i16 to i64747; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_64 = sub i64 %sl1_16_64, %sl2_16_64748; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_64 = zext i16 %i16 to i64749; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_64 = sub i64 %i64, %zw_16_64750; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext i16 %i16 to i64751; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext i16 %i16 to i64752; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_64 = sub i64 %zl1_16_64, %zl2_16_64753; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_32_64 = sext i32 %i32 to i64754; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_32_64 = sub i64 %i64, %sw_32_64755; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_32_64 = sext i32 %i32 to i64756; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_32_64 = sext i32 %i32 to i64757; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = sub i64 %sl1_32_64, %sl2_32_64758; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext i32 %i32 to i64759; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_32_64 = sub i64 %i64, %zw_32_64760; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext i32 %i32 to i64761; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext i32 %i32 to i64762; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = sub i64 %zl1_32_64, %zl2_32_64763; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void764;765 %sw_8_16 = sext i8 %i8 to i16766 %asw_8_16 = sub i16 %i16, %sw_8_16767 %sl1_8_16 = sext i8 %i8 to i16768 %sl2_8_16 = sext i8 %i8 to i16769 %asl_8_16 = sub i16 %sl1_8_16, %sl2_8_16770 771 %zw_8_16 = zext i8 %i8 to i16772 %azw_8_16 = sub i16 %i16, %zw_8_16773 %zl1_8_16 = zext i8 %i8 to i16774 %zl2_8_16 = zext i8 %i8 to i16775 %azl_8_16 = sub i16 %zl1_8_16, %zl2_8_16776 777 %sw_8_32 = sext i8 %i8 to i32778 %asw_8_32 = sub i32 %i32, %sw_8_32779 %sl1_8_32 = sext i8 %i8 to i32780 %sl2_8_32 = sext i8 %i8 to i32781 %asl_8_32 = sub i32 %sl1_8_32, %sl2_8_32782 783 %zw_8_32 = zext i8 %i8 to i32784 %azw_8_32 = sub i32 %i32, %zw_8_32785 %zl1_8_32 = zext i8 %i8 to i32786 %zl2_8_32 = zext i8 %i8 to i32787 %azl_8_32 = sub i32 %zl1_8_32, %zl2_8_32788 789 %sw_8_64 = sext i8 %i8 to i64790 %asw_8_64 = sub i64 %i64, %sw_8_64791 %sl1_8_64 = sext i8 %i8 to i64792 %sl2_8_64 = sext i8 %i8 to i64793 %asl_8_64 = sub i64 %sl1_8_64, %sl2_8_64794 795 %zw_8_64 = zext i8 %i8 to i64796 %azw_8_64 = sub i64 %i64, %zw_8_64797 %zl1_8_64 = zext i8 %i8 to i64798 %zl2_8_64 = zext i8 %i8 to i64799 %azl_8_64 = sub i64 %zl1_8_64, %zl2_8_64800 801 %sw_16_32 = sext i16 %i16 to i32802 %asw_16_32 = sub i32 %i32, %sw_16_32803 %sl1_16_32 = sext i16 %i16 to i32804 %sl2_16_32 = sext i16 %i16 to i32805 %asl_16_32 = sub i32 %sl1_16_32, %sl2_16_32806 807 %zw_16_32 = zext i16 %i16 to i32808 %azw_16_32 = sub i32 %i32, %zw_16_32809 %zl1_16_32 = zext i16 %i16 to i32810 %zl2_16_32 = zext i16 %i16 to i32811 %azl_16_32 = sub i32 %zl1_16_32, %zl2_16_32812 813 %sw_16_64 = sext i16 %i16 to i64814 %asw_16_64 = sub i64 %i64, %sw_16_64815 %sl1_16_64 = sext i16 %i16 to i64816 %sl2_16_64 = sext i16 %i16 to i64817 %asl_16_64 = sub i64 %sl1_16_64, %sl2_16_64818 819 %zw_16_64 = zext i16 %i16 to i64820 %azw_16_64 = sub i64 %i64, %zw_16_64821 %zl1_16_64 = zext i16 %i16 to i64822 %zl2_16_64 = zext i16 %i16 to i64823 %azl_16_64 = sub i64 %zl1_16_64, %zl2_16_64824 825 %sw_32_64 = sext i32 %i32 to i64826 %asw_32_64 = sub i64 %i64, %sw_32_64827 %sl1_32_64 = sext i32 %i32 to i64828 %sl2_32_64 = sext i32 %i32 to i64829 %asl_32_64 = sub i64 %sl1_32_64, %sl2_32_64830 831 %zw_32_64 = zext i32 %i32 to i64832 %azw_32_64 = sub i64 %i64, %zw_32_64833 %zl1_32_64 = zext i32 %i32 to i64834 %zl2_32_64 = zext i32 %i32 to i64835 %azl_32_64 = sub i64 %zl1_32_64, %zl2_32_64836 837 ret void838}839 840define void @extsubv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {841; CHECK-LABEL: 'extsubv2'842; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>843; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = sub <2 x i16> %i16, %sw_8_16844; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>845; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>846; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = sub <2 x i16> %sl1_8_16, %sl2_8_16847; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>848; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = sub <2 x i16> %i16, %zw_8_16849; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>850; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>851; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = sub <2 x i16> %zl1_8_16, %zl2_8_16852; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>853; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = sub <2 x i32> %i32, %sw_8_32854; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>855; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>856; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = sub <2 x i32> %sl1_8_32, %sl2_8_32857; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>858; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = sub <2 x i32> %i32, %zw_8_32859; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>860; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>861; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = sub <2 x i32> %zl1_8_32, %zl2_8_32862; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>863; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_64 = sub <2 x i64> %i64, %sw_8_64864; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>865; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>866; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_64 = sub <2 x i64> %sl1_8_64, %sl2_8_64867; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>868; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_64 = sub <2 x i64> %i64, %zw_8_64869; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>870; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>871; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_64 = sub <2 x i64> %zl1_8_64, %zl2_8_64872; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>873; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = sub <2 x i32> %i32, %sw_16_32874; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>875; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>876; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = sub <2 x i32> %sl1_16_32, %sl2_16_32877; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>878; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = sub <2 x i32> %i32, %zw_16_32879; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>880; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>881; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = sub <2 x i32> %zl1_16_32, %zl2_16_32882; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>883; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_64 = sub <2 x i64> %i64, %sw_16_64884; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>885; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>886; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_64 = sub <2 x i64> %sl1_16_64, %sl2_16_64887; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>888; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_64 = sub <2 x i64> %i64, %zw_16_64889; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>890; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>891; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_64 = sub <2 x i64> %zl1_16_64, %zl2_16_64892; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>893; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_32_64 = sub <2 x i64> %i64, %sw_32_64894; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>895; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>896; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = sub <2 x i64> %sl1_32_64, %sl2_32_64897; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>898; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_32_64 = sub <2 x i64> %i64, %zw_32_64899; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>900; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>901; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = sub <2 x i64> %zl1_32_64, %zl2_32_64902; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void903;904 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>905 %asw_8_16 = sub <2 x i16> %i16, %sw_8_16906 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>907 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>908 %asl_8_16 = sub <2 x i16> %sl1_8_16, %sl2_8_16909 910 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>911 %azw_8_16 = sub <2 x i16> %i16, %zw_8_16912 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>913 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>914 %azl_8_16 = sub <2 x i16> %zl1_8_16, %zl2_8_16915 916 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>917 %asw_8_32 = sub <2 x i32> %i32, %sw_8_32918 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>919 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>920 %asl_8_32 = sub <2 x i32> %sl1_8_32, %sl2_8_32921 922 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>923 %azw_8_32 = sub <2 x i32> %i32, %zw_8_32924 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>925 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>926 %azl_8_32 = sub <2 x i32> %zl1_8_32, %zl2_8_32927 928 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>929 %asw_8_64 = sub <2 x i64> %i64, %sw_8_64930 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>931 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>932 %asl_8_64 = sub <2 x i64> %sl1_8_64, %sl2_8_64933 934 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>935 %azw_8_64 = sub <2 x i64> %i64, %zw_8_64936 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>937 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>938 %azl_8_64 = sub <2 x i64> %zl1_8_64, %zl2_8_64939 940 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>941 %asw_16_32 = sub <2 x i32> %i32, %sw_16_32942 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>943 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>944 %asl_16_32 = sub <2 x i32> %sl1_16_32, %sl2_16_32945 946 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>947 %azw_16_32 = sub <2 x i32> %i32, %zw_16_32948 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>949 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>950 %azl_16_32 = sub <2 x i32> %zl1_16_32, %zl2_16_32951 952 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>953 %asw_16_64 = sub <2 x i64> %i64, %sw_16_64954 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>955 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>956 %asl_16_64 = sub <2 x i64> %sl1_16_64, %sl2_16_64957 958 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>959 %azw_16_64 = sub <2 x i64> %i64, %zw_16_64960 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>961 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>962 %azl_16_64 = sub <2 x i64> %zl1_16_64, %zl2_16_64963 964 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>965 %asw_32_64 = sub <2 x i64> %i64, %sw_32_64966 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>967 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>968 %asl_32_64 = sub <2 x i64> %sl1_32_64, %sl2_32_64969 970 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>971 %azw_32_64 = sub <2 x i64> %i64, %zw_32_64972 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>973 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>974 %azl_32_64 = sub <2 x i64> %zl1_32_64, %zl2_32_64975 976 ret void977}978 979define void @extsubv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {980; CHECK-LABEL: 'extsubv4'981; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>982; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = sub <4 x i16> %i16, %sw_8_16983; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>984; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>985; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = sub <4 x i16> %sl1_8_16, %sl2_8_16986; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>987; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = sub <4 x i16> %i16, %zw_8_16988; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>989; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>990; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = sub <4 x i16> %zl1_8_16, %zl2_8_16991; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>992; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = sub <4 x i32> %i32, %sw_8_32993; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>994; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>995; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = sub <4 x i32> %sl1_8_32, %sl2_8_32996; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>997; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = sub <4 x i32> %i32, %zw_8_32998; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>999; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>1000; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = sub <4 x i32> %zl1_8_32, %zl2_8_321001; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>1002; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = sub <4 x i64> %i64, %sw_8_641003; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>1004; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>1005; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = sub <4 x i64> %sl1_8_64, %sl2_8_641006; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>1007; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = sub <4 x i64> %i64, %zw_8_641008; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>1009; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>1010; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = sub <4 x i64> %zl1_8_64, %zl2_8_641011; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>1012; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = sub <4 x i32> %i32, %sw_16_321013; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>1014; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>1015; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = sub <4 x i32> %sl1_16_32, %sl2_16_321016; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>1017; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = sub <4 x i32> %i32, %zw_16_321018; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>1019; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>1020; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = sub <4 x i32> %zl1_16_32, %zl2_16_321021; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>1022; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = sub <4 x i64> %i64, %sw_16_641023; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>1024; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>1025; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = sub <4 x i64> %sl1_16_64, %sl2_16_641026; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>1027; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = sub <4 x i64> %i64, %zw_16_641028; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>1029; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>1030; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = sub <4 x i64> %zl1_16_64, %zl2_16_641031; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>1032; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = sub <4 x i64> %i64, %sw_32_641033; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>1034; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>1035; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = sub <4 x i64> %sl1_32_64, %sl2_32_641036; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>1037; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = sub <4 x i64> %i64, %zw_32_641038; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>1039; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>1040; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = sub <4 x i64> %zl1_32_64, %zl2_32_641041; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1042;1043 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>1044 %asw_8_16 = sub <4 x i16> %i16, %sw_8_161045 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>1046 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>1047 %asl_8_16 = sub <4 x i16> %sl1_8_16, %sl2_8_161048 1049 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>1050 %azw_8_16 = sub <4 x i16> %i16, %zw_8_161051 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>1052 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>1053 %azl_8_16 = sub <4 x i16> %zl1_8_16, %zl2_8_161054 1055 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>1056 %asw_8_32 = sub <4 x i32> %i32, %sw_8_321057 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>1058 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>1059 %asl_8_32 = sub <4 x i32> %sl1_8_32, %sl2_8_321060 1061 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>1062 %azw_8_32 = sub <4 x i32> %i32, %zw_8_321063 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>1064 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>1065 %azl_8_32 = sub <4 x i32> %zl1_8_32, %zl2_8_321066 1067 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>1068 %asw_8_64 = sub <4 x i64> %i64, %sw_8_641069 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>1070 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>1071 %asl_8_64 = sub <4 x i64> %sl1_8_64, %sl2_8_641072 1073 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>1074 %azw_8_64 = sub <4 x i64> %i64, %zw_8_641075 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>1076 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>1077 %azl_8_64 = sub <4 x i64> %zl1_8_64, %zl2_8_641078 1079 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>1080 %asw_16_32 = sub <4 x i32> %i32, %sw_16_321081 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>1082 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>1083 %asl_16_32 = sub <4 x i32> %sl1_16_32, %sl2_16_321084 1085 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>1086 %azw_16_32 = sub <4 x i32> %i32, %zw_16_321087 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>1088 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>1089 %azl_16_32 = sub <4 x i32> %zl1_16_32, %zl2_16_321090 1091 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>1092 %asw_16_64 = sub <4 x i64> %i64, %sw_16_641093 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>1094 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>1095 %asl_16_64 = sub <4 x i64> %sl1_16_64, %sl2_16_641096 1097 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>1098 %azw_16_64 = sub <4 x i64> %i64, %zw_16_641099 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>1100 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>1101 %azl_16_64 = sub <4 x i64> %zl1_16_64, %zl2_16_641102 1103 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>1104 %asw_32_64 = sub <4 x i64> %i64, %sw_32_641105 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>1106 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>1107 %asl_32_64 = sub <4 x i64> %sl1_32_64, %sl2_32_641108 1109 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>1110 %azw_32_64 = sub <4 x i64> %i64, %zw_32_641111 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>1112 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>1113 %azl_32_64 = sub <4 x i64> %zl1_32_64, %zl2_32_641114 1115 ret void1116}1117 1118define void @extsubv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {1119; CHECK-LABEL: 'extsubv8'1120; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>1121; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = sub <8 x i16> %i16, %sw_8_161122; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>1123; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>1124; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = sub <8 x i16> %sl1_8_16, %sl2_8_161125; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>1126; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = sub <8 x i16> %i16, %zw_8_161127; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>1128; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>1129; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = sub <8 x i16> %zl1_8_16, %zl2_8_161130; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>1131; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = sub <8 x i32> %i32, %sw_8_321132; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>1133; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>1134; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = sub <8 x i32> %sl1_8_32, %sl2_8_321135; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>1136; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = sub <8 x i32> %i32, %zw_8_321137; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>1138; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>1139; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = sub <8 x i32> %zl1_8_32, %zl2_8_321140; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>1141; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = sub <8 x i64> %i64, %sw_8_641142; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>1143; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>1144; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = sub <8 x i64> %sl1_8_64, %sl2_8_641145; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>1146; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = sub <8 x i64> %i64, %zw_8_641147; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>1148; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>1149; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = sub <8 x i64> %zl1_8_64, %zl2_8_641150; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>1151; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = sub <8 x i32> %i32, %sw_16_321152; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>1153; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>1154; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = sub <8 x i32> %sl1_16_32, %sl2_16_321155; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>1156; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = sub <8 x i32> %i32, %zw_16_321157; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>1158; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>1159; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = sub <8 x i32> %zl1_16_32, %zl2_16_321160; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>1161; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = sub <8 x i64> %i64, %sw_16_641162; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>1163; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>1164; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = sub <8 x i64> %sl1_16_64, %sl2_16_641165; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>1166; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = sub <8 x i64> %i64, %zw_16_641167; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>1168; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>1169; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = sub <8 x i64> %zl1_16_64, %zl2_16_641170; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>1171; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = sub <8 x i64> %i64, %sw_32_641172; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>1173; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>1174; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = sub <8 x i64> %sl1_32_64, %sl2_32_641175; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>1176; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = sub <8 x i64> %i64, %zw_32_641177; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>1178; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>1179; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = sub <8 x i64> %zl1_32_64, %zl2_32_641180; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1181;1182 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>1183 %asw_8_16 = sub <8 x i16> %i16, %sw_8_161184 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>1185 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>1186 %asl_8_16 = sub <8 x i16> %sl1_8_16, %sl2_8_161187 1188 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>1189 %azw_8_16 = sub <8 x i16> %i16, %zw_8_161190 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>1191 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>1192 %azl_8_16 = sub <8 x i16> %zl1_8_16, %zl2_8_161193 1194 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>1195 %asw_8_32 = sub <8 x i32> %i32, %sw_8_321196 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>1197 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>1198 %asl_8_32 = sub <8 x i32> %sl1_8_32, %sl2_8_321199 1200 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>1201 %azw_8_32 = sub <8 x i32> %i32, %zw_8_321202 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>1203 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>1204 %azl_8_32 = sub <8 x i32> %zl1_8_32, %zl2_8_321205 1206 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>1207 %asw_8_64 = sub <8 x i64> %i64, %sw_8_641208 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>1209 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>1210 %asl_8_64 = sub <8 x i64> %sl1_8_64, %sl2_8_641211 1212 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>1213 %azw_8_64 = sub <8 x i64> %i64, %zw_8_641214 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>1215 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>1216 %azl_8_64 = sub <8 x i64> %zl1_8_64, %zl2_8_641217 1218 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>1219 %asw_16_32 = sub <8 x i32> %i32, %sw_16_321220 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>1221 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>1222 %asl_16_32 = sub <8 x i32> %sl1_16_32, %sl2_16_321223 1224 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>1225 %azw_16_32 = sub <8 x i32> %i32, %zw_16_321226 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>1227 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>1228 %azl_16_32 = sub <8 x i32> %zl1_16_32, %zl2_16_321229 1230 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>1231 %asw_16_64 = sub <8 x i64> %i64, %sw_16_641232 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>1233 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>1234 %asl_16_64 = sub <8 x i64> %sl1_16_64, %sl2_16_641235 1236 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>1237 %azw_16_64 = sub <8 x i64> %i64, %zw_16_641238 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>1239 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>1240 %azl_16_64 = sub <8 x i64> %zl1_16_64, %zl2_16_641241 1242 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>1243 %asw_32_64 = sub <8 x i64> %i64, %sw_32_641244 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>1245 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>1246 %asl_32_64 = sub <8 x i64> %sl1_32_64, %sl2_32_641247 1248 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>1249 %azw_32_64 = sub <8 x i64> %i64, %zw_32_641250 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>1251 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>1252 %azl_32_64 = sub <8 x i64> %zl1_32_64, %zl2_32_641253 1254 ret void1255}1256 1257define void @extsubv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {1258; CHECK-LABEL: 'extsubv16'1259; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>1260; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_16 = sub <16 x i16> %i16, %sw_8_161261; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>1262; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>1263; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_16 = sub <16 x i16> %sl1_8_16, %sl2_8_161264; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>1265; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_16 = sub <16 x i16> %i16, %zw_8_161266; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>1267; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>1268; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_16 = sub <16 x i16> %zl1_8_16, %zl2_8_161269; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>1270; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = sub <16 x i32> %i32, %sw_8_321271; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>1272; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>1273; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = sub <16 x i32> %sl1_8_32, %sl2_8_321274; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>1275; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = sub <16 x i32> %i32, %zw_8_321276; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>1277; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>1278; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = sub <16 x i32> %zl1_8_32, %zl2_8_321279; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>1280; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = sub <16 x i64> %i64, %sw_8_641281; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>1282; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>1283; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = sub <16 x i64> %sl1_8_64, %sl2_8_641284; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>1285; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = sub <16 x i64> %i64, %zw_8_641286; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>1287; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>1288; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = sub <16 x i64> %zl1_8_64, %zl2_8_641289; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>1290; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = sub <16 x i32> %i32, %sw_16_321291; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>1292; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>1293; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = sub <16 x i32> %sl1_16_32, %sl2_16_321294; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>1295; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = sub <16 x i32> %i32, %zw_16_321296; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>1297; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>1298; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = sub <16 x i32> %zl1_16_32, %zl2_16_321299; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>1300; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = sub <16 x i64> %i64, %sw_16_641301; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>1302; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>1303; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = sub <16 x i64> %sl1_16_64, %sl2_16_641304; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>1305; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = sub <16 x i64> %i64, %zw_16_641306; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>1307; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>1308; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = sub <16 x i64> %zl1_16_64, %zl2_16_641309; CHECK-NEXT: Cost Model: Found costs of 0 for: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>1310; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = sub <16 x i64> %i64, %sw_32_641311; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>1312; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>1313; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = sub <16 x i64> %sl1_32_64, %sl2_32_641314; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>1315; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = sub <16 x i64> %i64, %zw_32_641316; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>1317; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>1318; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = sub <16 x i64> %zl1_32_64, %zl2_32_641319; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1320;1321 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>1322 %asw_8_16 = sub <16 x i16> %i16, %sw_8_161323 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>1324 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>1325 %asl_8_16 = sub <16 x i16> %sl1_8_16, %sl2_8_161326 1327 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>1328 %azw_8_16 = sub <16 x i16> %i16, %zw_8_161329 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>1330 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>1331 %azl_8_16 = sub <16 x i16> %zl1_8_16, %zl2_8_161332 1333 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>1334 %asw_8_32 = sub <16 x i32> %i32, %sw_8_321335 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>1336 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>1337 %asl_8_32 = sub <16 x i32> %sl1_8_32, %sl2_8_321338 1339 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>1340 %azw_8_32 = sub <16 x i32> %i32, %zw_8_321341 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>1342 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>1343 %azl_8_32 = sub <16 x i32> %zl1_8_32, %zl2_8_321344 1345 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>1346 %asw_8_64 = sub <16 x i64> %i64, %sw_8_641347 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>1348 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>1349 %asl_8_64 = sub <16 x i64> %sl1_8_64, %sl2_8_641350 1351 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>1352 %azw_8_64 = sub <16 x i64> %i64, %zw_8_641353 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>1354 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>1355 %azl_8_64 = sub <16 x i64> %zl1_8_64, %zl2_8_641356 1357 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>1358 %asw_16_32 = sub <16 x i32> %i32, %sw_16_321359 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>1360 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>1361 %asl_16_32 = sub <16 x i32> %sl1_16_32, %sl2_16_321362 1363 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>1364 %azw_16_32 = sub <16 x i32> %i32, %zw_16_321365 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>1366 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>1367 %azl_16_32 = sub <16 x i32> %zl1_16_32, %zl2_16_321368 1369 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>1370 %asw_16_64 = sub <16 x i64> %i64, %sw_16_641371 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>1372 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>1373 %asl_16_64 = sub <16 x i64> %sl1_16_64, %sl2_16_641374 1375 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>1376 %azw_16_64 = sub <16 x i64> %i64, %zw_16_641377 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>1378 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>1379 %azl_16_64 = sub <16 x i64> %zl1_16_64, %zl2_16_641380 1381 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>1382 %asw_32_64 = sub <16 x i64> %i64, %sw_32_641383 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>1384 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>1385 %asl_32_64 = sub <16 x i64> %sl1_32_64, %sl2_32_641386 1387 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>1388 %azw_32_64 = sub <16 x i64> %i64, %zw_32_641389 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>1390 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>1391 %azl_32_64 = sub <16 x i64> %zl1_32_64, %zl2_32_641392 1393 ret void1394}1395 1396define void @extmulv1(i8 %i8, i16 %i16, i32 %i32, i64 %i64) {1397; CHECK-LABEL: 'extmulv1'1398; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext i8 %i8 to i161399; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = mul i16 %i16, %sw_8_161400; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext i8 %i8 to i161401; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext i8 %i8 to i161402; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = mul i16 %sl1_8_16, %sl2_8_161403; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext i8 %i8 to i161404; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = mul i16 %i16, %zw_8_161405; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext i8 %i8 to i161406; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext i8 %i8 to i161407; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = mul i16 %zl1_8_16, %zl2_8_161408; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext i8 %i8 to i321409; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = mul i32 %i32, %sw_8_321410; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext i8 %i8 to i321411; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext i8 %i8 to i321412; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = mul i32 %sl1_8_32, %sl2_8_321413; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext i8 %i8 to i321414; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = mul i32 %i32, %zw_8_321415; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext i8 %i8 to i321416; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext i8 %i8 to i321417; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = mul i32 %zl1_8_32, %zl2_8_321418; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext i8 %i8 to i641419; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_64 = mul i64 %i64, %sw_8_641420; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext i8 %i8 to i641421; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext i8 %i8 to i641422; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_64 = mul i64 %sl1_8_64, %sl2_8_641423; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_8_64 = zext i8 %i8 to i641424; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_64 = mul i64 %i64, %zw_8_641425; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext i8 %i8 to i641426; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext i8 %i8 to i641427; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_64 = mul i64 %zl1_8_64, %zl2_8_641428; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext i16 %i16 to i321429; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = mul i32 %i32, %sw_16_321430; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext i16 %i16 to i321431; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext i16 %i16 to i321432; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = mul i32 %sl1_16_32, %sl2_16_321433; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext i16 %i16 to i321434; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = mul i32 %i32, %zw_16_321435; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext i16 %i16 to i321436; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext i16 %i16 to i321437; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = mul i32 %zl1_16_32, %zl2_16_321438; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext i16 %i16 to i641439; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_64 = mul i64 %i64, %sw_16_641440; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext i16 %i16 to i641441; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext i16 %i16 to i641442; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_64 = mul i64 %sl1_16_64, %sl2_16_641443; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_16_64 = zext i16 %i16 to i641444; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_64 = mul i64 %i64, %zw_16_641445; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext i16 %i16 to i641446; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext i16 %i16 to i641447; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_64 = mul i64 %zl1_16_64, %zl2_16_641448; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_32_64 = sext i32 %i32 to i641449; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_32_64 = mul i64 %i64, %sw_32_641450; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_32_64 = sext i32 %i32 to i641451; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_32_64 = sext i32 %i32 to i641452; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = mul i64 %sl1_32_64, %sl2_32_641453; CHECK-NEXT: Cost Model: Found costs of 0 for: %zw_32_64 = zext i32 %i32 to i641454; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_32_64 = mul i64 %i64, %zw_32_641455; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext i32 %i32 to i641456; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext i32 %i32 to i641457; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = mul i64 %zl1_32_64, %zl2_32_641458; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1459;1460 %sw_8_16 = sext i8 %i8 to i161461 %asw_8_16 = mul i16 %i16, %sw_8_161462 %sl1_8_16 = sext i8 %i8 to i161463 %sl2_8_16 = sext i8 %i8 to i161464 %asl_8_16 = mul i16 %sl1_8_16, %sl2_8_161465 1466 %zw_8_16 = zext i8 %i8 to i161467 %azw_8_16 = mul i16 %i16, %zw_8_161468 %zl1_8_16 = zext i8 %i8 to i161469 %zl2_8_16 = zext i8 %i8 to i161470 %azl_8_16 = mul i16 %zl1_8_16, %zl2_8_161471 1472 %sw_8_32 = sext i8 %i8 to i321473 %asw_8_32 = mul i32 %i32, %sw_8_321474 %sl1_8_32 = sext i8 %i8 to i321475 %sl2_8_32 = sext i8 %i8 to i321476 %asl_8_32 = mul i32 %sl1_8_32, %sl2_8_321477 1478 %zw_8_32 = zext i8 %i8 to i321479 %azw_8_32 = mul i32 %i32, %zw_8_321480 %zl1_8_32 = zext i8 %i8 to i321481 %zl2_8_32 = zext i8 %i8 to i321482 %azl_8_32 = mul i32 %zl1_8_32, %zl2_8_321483 1484 %sw_8_64 = sext i8 %i8 to i641485 %asw_8_64 = mul i64 %i64, %sw_8_641486 %sl1_8_64 = sext i8 %i8 to i641487 %sl2_8_64 = sext i8 %i8 to i641488 %asl_8_64 = mul i64 %sl1_8_64, %sl2_8_641489 1490 %zw_8_64 = zext i8 %i8 to i641491 %azw_8_64 = mul i64 %i64, %zw_8_641492 %zl1_8_64 = zext i8 %i8 to i641493 %zl2_8_64 = zext i8 %i8 to i641494 %azl_8_64 = mul i64 %zl1_8_64, %zl2_8_641495 1496 %sw_16_32 = sext i16 %i16 to i321497 %asw_16_32 = mul i32 %i32, %sw_16_321498 %sl1_16_32 = sext i16 %i16 to i321499 %sl2_16_32 = sext i16 %i16 to i321500 %asl_16_32 = mul i32 %sl1_16_32, %sl2_16_321501 1502 %zw_16_32 = zext i16 %i16 to i321503 %azw_16_32 = mul i32 %i32, %zw_16_321504 %zl1_16_32 = zext i16 %i16 to i321505 %zl2_16_32 = zext i16 %i16 to i321506 %azl_16_32 = mul i32 %zl1_16_32, %zl2_16_321507 1508 %sw_16_64 = sext i16 %i16 to i641509 %asw_16_64 = mul i64 %i64, %sw_16_641510 %sl1_16_64 = sext i16 %i16 to i641511 %sl2_16_64 = sext i16 %i16 to i641512 %asl_16_64 = mul i64 %sl1_16_64, %sl2_16_641513 1514 %zw_16_64 = zext i16 %i16 to i641515 %azw_16_64 = mul i64 %i64, %zw_16_641516 %zl1_16_64 = zext i16 %i16 to i641517 %zl2_16_64 = zext i16 %i16 to i641518 %azl_16_64 = mul i64 %zl1_16_64, %zl2_16_641519 1520 %sw_32_64 = sext i32 %i32 to i641521 %asw_32_64 = mul i64 %i64, %sw_32_641522 %sl1_32_64 = sext i32 %i32 to i641523 %sl2_32_64 = sext i32 %i32 to i641524 %asl_32_64 = mul i64 %sl1_32_64, %sl2_32_641525 1526 %zw_32_64 = zext i32 %i32 to i641527 %azw_32_64 = mul i64 %i64, %zw_32_641528 %zl1_32_64 = zext i32 %i32 to i641529 %zl2_32_64 = zext i32 %i32 to i641530 %azl_32_64 = mul i64 %zl1_32_64, %zl2_32_641531 1532 ret void1533}1534 1535define void @extmulv2(<2 x i8> %i8, <2 x i16> %i16, <2 x i32> %i32, <2 x i64> %i64) {1536; CHECK-LABEL: 'extmulv2'1537; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>1538; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = mul <2 x i16> %i16, %sw_8_161539; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>1540; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>1541; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = mul <2 x i16> %sl1_8_16, %sl2_8_161542; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>1543; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = mul <2 x i16> %i16, %zw_8_161544; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>1545; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>1546; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = mul <2 x i16> %zl1_8_16, %zl2_8_161547; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>1548; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = mul <2 x i32> %i32, %sw_8_321549; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>1550; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>1551; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = mul <2 x i32> %sl1_8_32, %sl2_8_321552; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>1553; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = mul <2 x i32> %i32, %zw_8_321554; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>1555; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>1556; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = mul <2 x i32> %zl1_8_32, %zl2_8_321557; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>1558; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = mul <2 x i64> %i64, %sw_8_641559; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>1560; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>1561; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = mul <2 x i64> %sl1_8_64, %sl2_8_641562; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>1563; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = mul <2 x i64> %i64, %zw_8_641564; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>1565; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>1566; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = mul <2 x i64> %zl1_8_64, %zl2_8_641567; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>1568; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = mul <2 x i32> %i32, %sw_16_321569; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>1570; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>1571; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = mul <2 x i32> %sl1_16_32, %sl2_16_321572; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>1573; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = mul <2 x i32> %i32, %zw_16_321574; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>1575; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>1576; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = mul <2 x i32> %zl1_16_32, %zl2_16_321577; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>1578; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = mul <2 x i64> %i64, %sw_16_641579; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>1580; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>1581; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = mul <2 x i64> %sl1_16_64, %sl2_16_641582; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>1583; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = mul <2 x i64> %i64, %zw_16_641584; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>1585; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>1586; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = mul <2 x i64> %zl1_16_64, %zl2_16_641587; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>1588; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = mul <2 x i64> %i64, %sw_32_641589; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>1590; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>1591; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_32_64 = mul <2 x i64> %sl1_32_64, %sl2_32_641592; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>1593; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = mul <2 x i64> %i64, %zw_32_641594; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>1595; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>1596; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_32_64 = mul <2 x i64> %zl1_32_64, %zl2_32_641597; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1598;1599 %sw_8_16 = sext <2 x i8> %i8 to <2 x i16>1600 %asw_8_16 = mul <2 x i16> %i16, %sw_8_161601 %sl1_8_16 = sext <2 x i8> %i8 to <2 x i16>1602 %sl2_8_16 = sext <2 x i8> %i8 to <2 x i16>1603 %asl_8_16 = mul <2 x i16> %sl1_8_16, %sl2_8_161604 1605 %zw_8_16 = zext <2 x i8> %i8 to <2 x i16>1606 %azw_8_16 = mul <2 x i16> %i16, %zw_8_161607 %zl1_8_16 = zext <2 x i8> %i8 to <2 x i16>1608 %zl2_8_16 = zext <2 x i8> %i8 to <2 x i16>1609 %azl_8_16 = mul <2 x i16> %zl1_8_16, %zl2_8_161610 1611 %sw_8_32 = sext <2 x i8> %i8 to <2 x i32>1612 %asw_8_32 = mul <2 x i32> %i32, %sw_8_321613 %sl1_8_32 = sext <2 x i8> %i8 to <2 x i32>1614 %sl2_8_32 = sext <2 x i8> %i8 to <2 x i32>1615 %asl_8_32 = mul <2 x i32> %sl1_8_32, %sl2_8_321616 1617 %zw_8_32 = zext <2 x i8> %i8 to <2 x i32>1618 %azw_8_32 = mul <2 x i32> %i32, %zw_8_321619 %zl1_8_32 = zext <2 x i8> %i8 to <2 x i32>1620 %zl2_8_32 = zext <2 x i8> %i8 to <2 x i32>1621 %azl_8_32 = mul <2 x i32> %zl1_8_32, %zl2_8_321622 1623 %sw_8_64 = sext <2 x i8> %i8 to <2 x i64>1624 %asw_8_64 = mul <2 x i64> %i64, %sw_8_641625 %sl1_8_64 = sext <2 x i8> %i8 to <2 x i64>1626 %sl2_8_64 = sext <2 x i8> %i8 to <2 x i64>1627 %asl_8_64 = mul <2 x i64> %sl1_8_64, %sl2_8_641628 1629 %zw_8_64 = zext <2 x i8> %i8 to <2 x i64>1630 %azw_8_64 = mul <2 x i64> %i64, %zw_8_641631 %zl1_8_64 = zext <2 x i8> %i8 to <2 x i64>1632 %zl2_8_64 = zext <2 x i8> %i8 to <2 x i64>1633 %azl_8_64 = mul <2 x i64> %zl1_8_64, %zl2_8_641634 1635 %sw_16_32 = sext <2 x i16> %i16 to <2 x i32>1636 %asw_16_32 = mul <2 x i32> %i32, %sw_16_321637 %sl1_16_32 = sext <2 x i16> %i16 to <2 x i32>1638 %sl2_16_32 = sext <2 x i16> %i16 to <2 x i32>1639 %asl_16_32 = mul <2 x i32> %sl1_16_32, %sl2_16_321640 1641 %zw_16_32 = zext <2 x i16> %i16 to <2 x i32>1642 %azw_16_32 = mul <2 x i32> %i32, %zw_16_321643 %zl1_16_32 = zext <2 x i16> %i16 to <2 x i32>1644 %zl2_16_32 = zext <2 x i16> %i16 to <2 x i32>1645 %azl_16_32 = mul <2 x i32> %zl1_16_32, %zl2_16_321646 1647 %sw_16_64 = sext <2 x i16> %i16 to <2 x i64>1648 %asw_16_64 = mul <2 x i64> %i64, %sw_16_641649 %sl1_16_64 = sext <2 x i16> %i16 to <2 x i64>1650 %sl2_16_64 = sext <2 x i16> %i16 to <2 x i64>1651 %asl_16_64 = mul <2 x i64> %sl1_16_64, %sl2_16_641652 1653 %zw_16_64 = zext <2 x i16> %i16 to <2 x i64>1654 %azw_16_64 = mul <2 x i64> %i64, %zw_16_641655 %zl1_16_64 = zext <2 x i16> %i16 to <2 x i64>1656 %zl2_16_64 = zext <2 x i16> %i16 to <2 x i64>1657 %azl_16_64 = mul <2 x i64> %zl1_16_64, %zl2_16_641658 1659 %sw_32_64 = sext <2 x i32> %i32 to <2 x i64>1660 %asw_32_64 = mul <2 x i64> %i64, %sw_32_641661 %sl1_32_64 = sext <2 x i32> %i32 to <2 x i64>1662 %sl2_32_64 = sext <2 x i32> %i32 to <2 x i64>1663 %asl_32_64 = mul <2 x i64> %sl1_32_64, %sl2_32_641664 1665 %zw_32_64 = zext <2 x i32> %i32 to <2 x i64>1666 %azw_32_64 = mul <2 x i64> %i64, %zw_32_641667 %zl1_32_64 = zext <2 x i32> %i32 to <2 x i64>1668 %zl2_32_64 = zext <2 x i32> %i32 to <2 x i64>1669 %azl_32_64 = mul <2 x i64> %zl1_32_64, %zl2_32_641670 1671 ret void1672}1673 1674define void @extmulv4(<4 x i8> %i8, <4 x i16> %i16, <4 x i32> %i32, <4 x i64> %i64) {1675; CHECK-LABEL: 'extmulv4'1676; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>1677; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = mul <4 x i16> %i16, %sw_8_161678; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>1679; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>1680; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = mul <4 x i16> %sl1_8_16, %sl2_8_161681; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>1682; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = mul <4 x i16> %i16, %zw_8_161683; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>1684; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>1685; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = mul <4 x i16> %zl1_8_16, %zl2_8_161686; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>1687; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_32 = mul <4 x i32> %i32, %sw_8_321688; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>1689; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>1690; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_32 = mul <4 x i32> %sl1_8_32, %sl2_8_321691; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>1692; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_32 = mul <4 x i32> %i32, %zw_8_321693; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>1694; CHECK-NEXT: Cost Model: Found costs of 1 for: %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>1695; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_32 = mul <4 x i32> %zl1_8_32, %zl2_8_321696; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>1697; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = mul <4 x i64> %i64, %sw_8_641698; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>1699; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>1700; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = mul <4 x i64> %sl1_8_64, %sl2_8_641701; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>1702; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = mul <4 x i64> %i64, %zw_8_641703; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>1704; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>1705; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = mul <4 x i64> %zl1_8_64, %zl2_8_641706; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>1707; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_16_32 = mul <4 x i32> %i32, %sw_16_321708; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>1709; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>1710; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_16_32 = mul <4 x i32> %sl1_16_32, %sl2_16_321711; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>1712; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_16_32 = mul <4 x i32> %i32, %zw_16_321713; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>1714; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>1715; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_16_32 = mul <4 x i32> %zl1_16_32, %zl2_16_321716; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>1717; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = mul <4 x i64> %i64, %sw_16_641718; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>1719; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>1720; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = mul <4 x i64> %sl1_16_64, %sl2_16_641721; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>1722; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = mul <4 x i64> %i64, %zw_16_641723; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>1724; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>1725; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = mul <4 x i64> %zl1_16_64, %zl2_16_641726; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>1727; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = mul <4 x i64> %i64, %sw_32_641728; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>1729; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>1730; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = mul <4 x i64> %sl1_32_64, %sl2_32_641731; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>1732; CHECK-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = mul <4 x i64> %i64, %zw_32_641733; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>1734; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>1735; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = mul <4 x i64> %zl1_32_64, %zl2_32_641736; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1737;1738 %sw_8_16 = sext <4 x i8> %i8 to <4 x i16>1739 %asw_8_16 = mul <4 x i16> %i16, %sw_8_161740 %sl1_8_16 = sext <4 x i8> %i8 to <4 x i16>1741 %sl2_8_16 = sext <4 x i8> %i8 to <4 x i16>1742 %asl_8_16 = mul <4 x i16> %sl1_8_16, %sl2_8_161743 1744 %zw_8_16 = zext <4 x i8> %i8 to <4 x i16>1745 %azw_8_16 = mul <4 x i16> %i16, %zw_8_161746 %zl1_8_16 = zext <4 x i8> %i8 to <4 x i16>1747 %zl2_8_16 = zext <4 x i8> %i8 to <4 x i16>1748 %azl_8_16 = mul <4 x i16> %zl1_8_16, %zl2_8_161749 1750 %sw_8_32 = sext <4 x i8> %i8 to <4 x i32>1751 %asw_8_32 = mul <4 x i32> %i32, %sw_8_321752 %sl1_8_32 = sext <4 x i8> %i8 to <4 x i32>1753 %sl2_8_32 = sext <4 x i8> %i8 to <4 x i32>1754 %asl_8_32 = mul <4 x i32> %sl1_8_32, %sl2_8_321755 1756 %zw_8_32 = zext <4 x i8> %i8 to <4 x i32>1757 %azw_8_32 = mul <4 x i32> %i32, %zw_8_321758 %zl1_8_32 = zext <4 x i8> %i8 to <4 x i32>1759 %zl2_8_32 = zext <4 x i8> %i8 to <4 x i32>1760 %azl_8_32 = mul <4 x i32> %zl1_8_32, %zl2_8_321761 1762 %sw_8_64 = sext <4 x i8> %i8 to <4 x i64>1763 %asw_8_64 = mul <4 x i64> %i64, %sw_8_641764 %sl1_8_64 = sext <4 x i8> %i8 to <4 x i64>1765 %sl2_8_64 = sext <4 x i8> %i8 to <4 x i64>1766 %asl_8_64 = mul <4 x i64> %sl1_8_64, %sl2_8_641767 1768 %zw_8_64 = zext <4 x i8> %i8 to <4 x i64>1769 %azw_8_64 = mul <4 x i64> %i64, %zw_8_641770 %zl1_8_64 = zext <4 x i8> %i8 to <4 x i64>1771 %zl2_8_64 = zext <4 x i8> %i8 to <4 x i64>1772 %azl_8_64 = mul <4 x i64> %zl1_8_64, %zl2_8_641773 1774 %sw_16_32 = sext <4 x i16> %i16 to <4 x i32>1775 %asw_16_32 = mul <4 x i32> %i32, %sw_16_321776 %sl1_16_32 = sext <4 x i16> %i16 to <4 x i32>1777 %sl2_16_32 = sext <4 x i16> %i16 to <4 x i32>1778 %asl_16_32 = mul <4 x i32> %sl1_16_32, %sl2_16_321779 1780 %zw_16_32 = zext <4 x i16> %i16 to <4 x i32>1781 %azw_16_32 = mul <4 x i32> %i32, %zw_16_321782 %zl1_16_32 = zext <4 x i16> %i16 to <4 x i32>1783 %zl2_16_32 = zext <4 x i16> %i16 to <4 x i32>1784 %azl_16_32 = mul <4 x i32> %zl1_16_32, %zl2_16_321785 1786 %sw_16_64 = sext <4 x i16> %i16 to <4 x i64>1787 %asw_16_64 = mul <4 x i64> %i64, %sw_16_641788 %sl1_16_64 = sext <4 x i16> %i16 to <4 x i64>1789 %sl2_16_64 = sext <4 x i16> %i16 to <4 x i64>1790 %asl_16_64 = mul <4 x i64> %sl1_16_64, %sl2_16_641791 1792 %zw_16_64 = zext <4 x i16> %i16 to <4 x i64>1793 %azw_16_64 = mul <4 x i64> %i64, %zw_16_641794 %zl1_16_64 = zext <4 x i16> %i16 to <4 x i64>1795 %zl2_16_64 = zext <4 x i16> %i16 to <4 x i64>1796 %azl_16_64 = mul <4 x i64> %zl1_16_64, %zl2_16_641797 1798 %sw_32_64 = sext <4 x i32> %i32 to <4 x i64>1799 %asw_32_64 = mul <4 x i64> %i64, %sw_32_641800 %sl1_32_64 = sext <4 x i32> %i32 to <4 x i64>1801 %sl2_32_64 = sext <4 x i32> %i32 to <4 x i64>1802 %asl_32_64 = mul <4 x i64> %sl1_32_64, %sl2_32_641803 1804 %zw_32_64 = zext <4 x i32> %i32 to <4 x i64>1805 %azw_32_64 = mul <4 x i64> %i64, %zw_32_641806 %zl1_32_64 = zext <4 x i32> %i32 to <4 x i64>1807 %zl2_32_64 = zext <4 x i32> %i32 to <4 x i64>1808 %azl_32_64 = mul <4 x i64> %zl1_32_64, %zl2_32_641809 1810 ret void1811}1812 1813define void @extmulv8(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {1814; CHECK-LABEL: 'extmulv8'1815; CHECK-NEXT: Cost Model: Found costs of 1 for: %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>1816; CHECK-NEXT: Cost Model: Found costs of 1 for: %asw_8_16 = mul <8 x i16> %i16, %sw_8_161817; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>1818; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>1819; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = mul <8 x i16> %sl1_8_16, %sl2_8_161820; CHECK-NEXT: Cost Model: Found costs of 1 for: %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>1821; CHECK-NEXT: Cost Model: Found costs of 1 for: %azw_8_16 = mul <8 x i16> %i16, %zw_8_161822; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>1823; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>1824; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = mul <8 x i16> %zl1_8_16, %zl2_8_161825; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>1826; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = mul <8 x i32> %i32, %sw_8_321827; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>1828; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>1829; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = mul <8 x i32> %sl1_8_32, %sl2_8_321830; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>1831; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = mul <8 x i32> %i32, %zw_8_321832; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>1833; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>1834; CHECK-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = mul <8 x i32> %zl1_8_32, %zl2_8_321835; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>1836; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = mul <8 x i64> %i64, %sw_8_641837; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>1838; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>1839; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = mul <8 x i64> %sl1_8_64, %sl2_8_641840; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>1841; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = mul <8 x i64> %i64, %zw_8_641842; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>1843; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>1844; CHECK-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = mul <8 x i64> %zl1_8_64, %zl2_8_641845; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>1846; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = mul <8 x i32> %i32, %sw_16_321847; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>1848; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>1849; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = mul <8 x i32> %sl1_16_32, %sl2_16_321850; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>1851; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = mul <8 x i32> %i32, %zw_16_321852; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>1853; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>1854; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = mul <8 x i32> %zl1_16_32, %zl2_16_321855; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>1856; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = mul <8 x i64> %i64, %sw_16_641857; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>1858; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>1859; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = mul <8 x i64> %sl1_16_64, %sl2_16_641860; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>1861; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = mul <8 x i64> %i64, %zw_16_641862; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>1863; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>1864; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = mul <8 x i64> %zl1_16_64, %zl2_16_641865; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>1866; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = mul <8 x i64> %i64, %sw_32_641867; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>1868; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>1869; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = mul <8 x i64> %sl1_32_64, %sl2_32_641870; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>1871; CHECK-NEXT: Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = mul <8 x i64> %i64, %zw_32_641872; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>1873; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>1874; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = mul <8 x i64> %zl1_32_64, %zl2_32_641875; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1876;1877 %sw_8_16 = sext <8 x i8> %i8 to <8 x i16>1878 %asw_8_16 = mul <8 x i16> %i16, %sw_8_161879 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>1880 %sl2_8_16 = sext <8 x i8> %i8 to <8 x i16>1881 %asl_8_16 = mul <8 x i16> %sl1_8_16, %sl2_8_161882 1883 %zw_8_16 = zext <8 x i8> %i8 to <8 x i16>1884 %azw_8_16 = mul <8 x i16> %i16, %zw_8_161885 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>1886 %zl2_8_16 = zext <8 x i8> %i8 to <8 x i16>1887 %azl_8_16 = mul <8 x i16> %zl1_8_16, %zl2_8_161888 1889 %sw_8_32 = sext <8 x i8> %i8 to <8 x i32>1890 %asw_8_32 = mul <8 x i32> %i32, %sw_8_321891 %sl1_8_32 = sext <8 x i8> %i8 to <8 x i32>1892 %sl2_8_32 = sext <8 x i8> %i8 to <8 x i32>1893 %asl_8_32 = mul <8 x i32> %sl1_8_32, %sl2_8_321894 1895 %zw_8_32 = zext <8 x i8> %i8 to <8 x i32>1896 %azw_8_32 = mul <8 x i32> %i32, %zw_8_321897 %zl1_8_32 = zext <8 x i8> %i8 to <8 x i32>1898 %zl2_8_32 = zext <8 x i8> %i8 to <8 x i32>1899 %azl_8_32 = mul <8 x i32> %zl1_8_32, %zl2_8_321900 1901 %sw_8_64 = sext <8 x i8> %i8 to <8 x i64>1902 %asw_8_64 = mul <8 x i64> %i64, %sw_8_641903 %sl1_8_64 = sext <8 x i8> %i8 to <8 x i64>1904 %sl2_8_64 = sext <8 x i8> %i8 to <8 x i64>1905 %asl_8_64 = mul <8 x i64> %sl1_8_64, %sl2_8_641906 1907 %zw_8_64 = zext <8 x i8> %i8 to <8 x i64>1908 %azw_8_64 = mul <8 x i64> %i64, %zw_8_641909 %zl1_8_64 = zext <8 x i8> %i8 to <8 x i64>1910 %zl2_8_64 = zext <8 x i8> %i8 to <8 x i64>1911 %azl_8_64 = mul <8 x i64> %zl1_8_64, %zl2_8_641912 1913 %sw_16_32 = sext <8 x i16> %i16 to <8 x i32>1914 %asw_16_32 = mul <8 x i32> %i32, %sw_16_321915 %sl1_16_32 = sext <8 x i16> %i16 to <8 x i32>1916 %sl2_16_32 = sext <8 x i16> %i16 to <8 x i32>1917 %asl_16_32 = mul <8 x i32> %sl1_16_32, %sl2_16_321918 1919 %zw_16_32 = zext <8 x i16> %i16 to <8 x i32>1920 %azw_16_32 = mul <8 x i32> %i32, %zw_16_321921 %zl1_16_32 = zext <8 x i16> %i16 to <8 x i32>1922 %zl2_16_32 = zext <8 x i16> %i16 to <8 x i32>1923 %azl_16_32 = mul <8 x i32> %zl1_16_32, %zl2_16_321924 1925 %sw_16_64 = sext <8 x i16> %i16 to <8 x i64>1926 %asw_16_64 = mul <8 x i64> %i64, %sw_16_641927 %sl1_16_64 = sext <8 x i16> %i16 to <8 x i64>1928 %sl2_16_64 = sext <8 x i16> %i16 to <8 x i64>1929 %asl_16_64 = mul <8 x i64> %sl1_16_64, %sl2_16_641930 1931 %zw_16_64 = zext <8 x i16> %i16 to <8 x i64>1932 %azw_16_64 = mul <8 x i64> %i64, %zw_16_641933 %zl1_16_64 = zext <8 x i16> %i16 to <8 x i64>1934 %zl2_16_64 = zext <8 x i16> %i16 to <8 x i64>1935 %azl_16_64 = mul <8 x i64> %zl1_16_64, %zl2_16_641936 1937 %sw_32_64 = sext <8 x i32> %i32 to <8 x i64>1938 %asw_32_64 = mul <8 x i64> %i64, %sw_32_641939 %sl1_32_64 = sext <8 x i32> %i32 to <8 x i64>1940 %sl2_32_64 = sext <8 x i32> %i32 to <8 x i64>1941 %asl_32_64 = mul <8 x i64> %sl1_32_64, %sl2_32_641942 1943 %zw_32_64 = zext <8 x i32> %i32 to <8 x i64>1944 %azw_32_64 = mul <8 x i64> %i64, %zw_32_641945 %zl1_32_64 = zext <8 x i32> %i32 to <8 x i64>1946 %zl2_32_64 = zext <8 x i32> %i32 to <8 x i64>1947 %azl_32_64 = mul <8 x i64> %zl1_32_64, %zl2_32_641948 1949 ret void1950}1951 1952define void @extmulv16(<16 x i8> %i8, <16 x i16> %i16, <16 x i32> %i32, <16 x i64> %i64) {1953; CHECK-LABEL: 'extmulv16'1954; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>1955; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_16 = mul <16 x i16> %i16, %sw_8_161956; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>1957; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>1958; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_16 = mul <16 x i16> %sl1_8_16, %sl2_8_161959; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>1960; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_16 = mul <16 x i16> %i16, %zw_8_161961; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>1962; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>1963; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_16 = mul <16 x i16> %zl1_8_16, %zl2_8_161964; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>1965; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_32 = mul <16 x i32> %i32, %sw_8_321966; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>1967; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>1968; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_32 = mul <16 x i32> %sl1_8_32, %sl2_8_321969; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>1970; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_32 = mul <16 x i32> %i32, %zw_8_321971; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>1972; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>1973; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_32 = mul <16 x i32> %zl1_8_32, %zl2_8_321974; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>1975; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %asw_8_64 = mul <16 x i64> %i64, %sw_8_641976; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>1977; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>1978; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %asl_8_64 = mul <16 x i64> %sl1_8_64, %sl2_8_641979; CHECK-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>1980; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %azw_8_64 = mul <16 x i64> %i64, %zw_8_641981; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>1982; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>1983; CHECK-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %azl_8_64 = mul <16 x i64> %zl1_8_64, %zl2_8_641984; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>1985; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_32 = mul <16 x i32> %i32, %sw_16_321986; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>1987; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>1988; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_32 = mul <16 x i32> %sl1_16_32, %sl2_16_321989; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>1990; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_32 = mul <16 x i32> %i32, %zw_16_321991; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>1992; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>1993; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_32 = mul <16 x i32> %zl1_16_32, %zl2_16_321994; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>1995; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %asw_16_64 = mul <16 x i64> %i64, %sw_16_641996; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>1997; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>1998; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %asl_16_64 = mul <16 x i64> %sl1_16_64, %sl2_16_641999; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>2000; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %azw_16_64 = mul <16 x i64> %i64, %zw_16_642001; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>2002; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>2003; CHECK-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %azl_16_64 = mul <16 x i64> %zl1_16_64, %zl2_16_642004; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>2005; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %asw_32_64 = mul <16 x i64> %i64, %sw_32_642006; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>2007; CHECK-NEXT: Cost Model: Found costs of 0 for: %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>2008; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %asl_32_64 = mul <16 x i64> %sl1_32_64, %sl2_32_642009; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>2010; CHECK-NEXT: Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %azw_32_64 = mul <16 x i64> %i64, %zw_32_642011; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>2012; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>2013; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %azl_32_64 = mul <16 x i64> %zl1_32_64, %zl2_32_642014; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void2015;2016 %sw_8_16 = sext <16 x i8> %i8 to <16 x i16>2017 %asw_8_16 = mul <16 x i16> %i16, %sw_8_162018 %sl1_8_16 = sext <16 x i8> %i8 to <16 x i16>2019 %sl2_8_16 = sext <16 x i8> %i8 to <16 x i16>2020 %asl_8_16 = mul <16 x i16> %sl1_8_16, %sl2_8_162021 2022 %zw_8_16 = zext <16 x i8> %i8 to <16 x i16>2023 %azw_8_16 = mul <16 x i16> %i16, %zw_8_162024 %zl1_8_16 = zext <16 x i8> %i8 to <16 x i16>2025 %zl2_8_16 = zext <16 x i8> %i8 to <16 x i16>2026 %azl_8_16 = mul <16 x i16> %zl1_8_16, %zl2_8_162027 2028 %sw_8_32 = sext <16 x i8> %i8 to <16 x i32>2029 %asw_8_32 = mul <16 x i32> %i32, %sw_8_322030 %sl1_8_32 = sext <16 x i8> %i8 to <16 x i32>2031 %sl2_8_32 = sext <16 x i8> %i8 to <16 x i32>2032 %asl_8_32 = mul <16 x i32> %sl1_8_32, %sl2_8_322033 2034 %zw_8_32 = zext <16 x i8> %i8 to <16 x i32>2035 %azw_8_32 = mul <16 x i32> %i32, %zw_8_322036 %zl1_8_32 = zext <16 x i8> %i8 to <16 x i32>2037 %zl2_8_32 = zext <16 x i8> %i8 to <16 x i32>2038 %azl_8_32 = mul <16 x i32> %zl1_8_32, %zl2_8_322039 2040 %sw_8_64 = sext <16 x i8> %i8 to <16 x i64>2041 %asw_8_64 = mul <16 x i64> %i64, %sw_8_642042 %sl1_8_64 = sext <16 x i8> %i8 to <16 x i64>2043 %sl2_8_64 = sext <16 x i8> %i8 to <16 x i64>2044 %asl_8_64 = mul <16 x i64> %sl1_8_64, %sl2_8_642045 2046 %zw_8_64 = zext <16 x i8> %i8 to <16 x i64>2047 %azw_8_64 = mul <16 x i64> %i64, %zw_8_642048 %zl1_8_64 = zext <16 x i8> %i8 to <16 x i64>2049 %zl2_8_64 = zext <16 x i8> %i8 to <16 x i64>2050 %azl_8_64 = mul <16 x i64> %zl1_8_64, %zl2_8_642051 2052 %sw_16_32 = sext <16 x i16> %i16 to <16 x i32>2053 %asw_16_32 = mul <16 x i32> %i32, %sw_16_322054 %sl1_16_32 = sext <16 x i16> %i16 to <16 x i32>2055 %sl2_16_32 = sext <16 x i16> %i16 to <16 x i32>2056 %asl_16_32 = mul <16 x i32> %sl1_16_32, %sl2_16_322057 2058 %zw_16_32 = zext <16 x i16> %i16 to <16 x i32>2059 %azw_16_32 = mul <16 x i32> %i32, %zw_16_322060 %zl1_16_32 = zext <16 x i16> %i16 to <16 x i32>2061 %zl2_16_32 = zext <16 x i16> %i16 to <16 x i32>2062 %azl_16_32 = mul <16 x i32> %zl1_16_32, %zl2_16_322063 2064 %sw_16_64 = sext <16 x i16> %i16 to <16 x i64>2065 %asw_16_64 = mul <16 x i64> %i64, %sw_16_642066 %sl1_16_64 = sext <16 x i16> %i16 to <16 x i64>2067 %sl2_16_64 = sext <16 x i16> %i16 to <16 x i64>2068 %asl_16_64 = mul <16 x i64> %sl1_16_64, %sl2_16_642069 2070 %zw_16_64 = zext <16 x i16> %i16 to <16 x i64>2071 %azw_16_64 = mul <16 x i64> %i64, %zw_16_642072 %zl1_16_64 = zext <16 x i16> %i16 to <16 x i64>2073 %zl2_16_64 = zext <16 x i16> %i16 to <16 x i64>2074 %azl_16_64 = mul <16 x i64> %zl1_16_64, %zl2_16_642075 2076 %sw_32_64 = sext <16 x i32> %i32 to <16 x i64>2077 %asw_32_64 = mul <16 x i64> %i64, %sw_32_642078 %sl1_32_64 = sext <16 x i32> %i32 to <16 x i64>2079 %sl2_32_64 = sext <16 x i32> %i32 to <16 x i64>2080 %asl_32_64 = mul <16 x i64> %sl1_32_64, %sl2_32_642081 2082 %zw_32_64 = zext <16 x i32> %i32 to <16 x i64>2083 %azw_32_64 = mul <16 x i64> %i64, %zw_32_642084 %zl1_32_64 = zext <16 x i32> %i32 to <16 x i64>2085 %zl2_32_64 = zext <16 x i32> %i32 to <16 x i64>2086 %azl_32_64 = mul <16 x i64> %zl1_32_64, %zl2_32_642087 2088 ret void2089}2090 2091define void @extmul_const(<8 x i8> %i8, <8 x i16> %i16, <8 x i32> %i32, <8 x i64> %i64) {2092; CHECK-LABEL: 'extmul_const'2093; CHECK-NEXT: Cost Model: Found costs of 1 for: %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>2094; CHECK-NEXT: Cost Model: Found costs of 1 for: %asl_8_16 = mul <8 x i16> %sl1_8_16, splat (i16 10)2095; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>2096; CHECK-NEXT: Cost Model: Found costs of 1 for: %azl_8_16 = mul <8 x i16> %zl1_8_16, splat (i16 10)2097; CHECK-NEXT: Cost Model: Found costs of 0 for: %zl1_8_16b = zext <8 x i8> %i8 to <8 x i16>2098; CHECK-NEXT: Cost Model: Found costs of 1 for: %and = and <8 x i16> %sl1_8_16, splat (i16 255)2099; CHECK-NEXT: Cost Model: Found costs of 1 for: %aal_8_16 = mul <8 x i16> %zl1_8_16b, %and2100; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void2101;2102 %sl1_8_16 = sext <8 x i8> %i8 to <8 x i16>2103 %asl_8_16 = mul <8 x i16> %sl1_8_16, <i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10>2104 2105 %zl1_8_16 = zext <8 x i8> %i8 to <8 x i16>2106 %azl_8_16 = mul <8 x i16> %zl1_8_16, <i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10, i16 10>2107 2108 %zl1_8_16b = zext <8 x i8> %i8 to <8 x i16>2109 %and = and <8 x i16> %sl1_8_16, <i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255>2110 %aal_8_16 = mul <8 x i16> %zl1_8_16b, %and2111 2112 ret void2113}2114