brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.5 KiB · 540378b Raw
219 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt -passes="print<cost-model>" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64 -mattr=+sve2 %s | FileCheck %s3 4target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"5target triple = "aarch64-linux-gnu"6 7define void @lrint() {8; CHECK-LABEL: 'lrint'9; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lrint.nxv2i64.nxv2f32(<vscale x 2 x float> poison)10; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lrint.nxv4i64.nxv4f32(<vscale x 4 x float> poison)11; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lrint.nxv8i64.nxv8f32(<vscale x 8 x float> poison)12; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lrint.nxv16i64.nxv16f32(<vscale x 16 x float> poison)13; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %5 = call <vscale x 2 x i64> @llvm.lrint.nxv2i64.nxv2f64(<vscale x 2 x double> poison)14; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %6 = call <vscale x 4 x i64> @llvm.lrint.nxv4i64.nxv4f64(<vscale x 4 x double> poison)15; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %7 = call <vscale x 8 x i64> @llvm.lrint.nxv8i64.nxv8f64(<vscale x 8 x double> poison)16; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %8 = call <vscale x 16 x i64> @llvm.lrint.nxv16i64.nxv16f64(<vscale x 16 x double> poison)17; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void18;19  call <vscale x 2 x i64> @llvm.lrint(<vscale x 2 x float> poison)20  call <vscale x 4 x i64> @llvm.lrint(<vscale x 4 x float> poison)21  call <vscale x 8 x i64> @llvm.lrint(<vscale x 8 x float> poison)22  call <vscale x 16 x i64> @llvm.lrint(<vscale x 16 x float> poison)23  call <vscale x 2 x i64> @llvm.lrint(<vscale x 2 x double> poison)24  call <vscale x 4 x i64> @llvm.lrint(<vscale x 4 x double> poison)25  call <vscale x 8 x i64> @llvm.lrint(<vscale x 8 x double> poison)26  call <vscale x 16 x i64> @llvm.lrint(<vscale x 16 x double> poison)27  ret void28}29 30define void @lrint_fp16() {31; CHECK-LABEL: 'lrint_fp16'32; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lrint.nxv2i64.nxv2f16(<vscale x 2 x half> poison)33; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lrint.nxv4i64.nxv4f16(<vscale x 4 x half> poison)34; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lrint.nxv8i64.nxv8f16(<vscale x 8 x half> poison)35; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lrint.nxv16i64.nxv16f16(<vscale x 16 x half> poison)36; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void37;38  call <vscale x 2 x i64> @llvm.lrint(<vscale x 2 x half> poison)39  call <vscale x 4 x i64> @llvm.lrint(<vscale x 4 x half> poison)40  call <vscale x 8 x i64> @llvm.lrint(<vscale x 8 x half> poison)41  call <vscale x 16 x i64> @llvm.lrint(<vscale x 16 x half> poison)42  ret void43}44 45define void @lrint_bf16() {46; CHECK-LABEL: 'lrint_bf16'47; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lrint.nxv2i64.nxv2bf16(<vscale x 2 x bfloat> poison)48; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lrint.nxv4i64.nxv4bf16(<vscale x 4 x bfloat> poison)49; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lrint.nxv8i64.nxv8bf16(<vscale x 8 x bfloat> poison)50; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lrint.nxv16i64.nxv16bf16(<vscale x 16 x bfloat> poison)51; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void52;53  call <vscale x 2 x i64> @llvm.lrint(<vscale x 2 x bfloat> poison)54  call <vscale x 4 x i64> @llvm.lrint(<vscale x 4 x bfloat> poison)55  call <vscale x 8 x i64> @llvm.lrint(<vscale x 8 x bfloat> poison)56  call <vscale x 16 x i64> @llvm.lrint(<vscale x 16 x bfloat> poison)57  ret void58}59 60define void @llrint() {61; CHECK-LABEL: 'llrint'62; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llrint.nxv2i64.nxv2f32(<vscale x 2 x float> poison)63; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llrint.nxv4i64.nxv4f32(<vscale x 4 x float> poison)64; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llrint.nxv8i64.nxv8f32(<vscale x 8 x float> poison)65; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llrint.nxv16i64.nxv16f32(<vscale x 16 x float> poison)66; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %5 = call <vscale x 2 x i64> @llvm.llrint.nxv2i64.nxv2f64(<vscale x 2 x double> poison)67; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %6 = call <vscale x 4 x i64> @llvm.llrint.nxv4i64.nxv4f64(<vscale x 4 x double> poison)68; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %7 = call <vscale x 8 x i64> @llvm.llrint.nxv8i64.nxv8f64(<vscale x 8 x double> poison)69; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %8 = call <vscale x 16 x i64> @llvm.llrint.nxv16i64.nxv16f64(<vscale x 16 x double> poison)70; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void71;72  call <vscale x 2 x i64> @llvm.llrint(<vscale x 2 x float> poison)73  call <vscale x 4 x i64> @llvm.llrint(<vscale x 4 x float> poison)74  call <vscale x 8 x i64> @llvm.llrint(<vscale x 8 x float> poison)75  call <vscale x 16 x i64> @llvm.llrint(<vscale x 16 x float> poison)76  call <vscale x 2 x i64> @llvm.llrint(<vscale x 2 x double> poison)77  call <vscale x 4 x i64> @llvm.llrint(<vscale x 4 x double> poison)78  call <vscale x 8 x i64> @llvm.llrint(<vscale x 8 x double> poison)79  call <vscale x 16 x i64> @llvm.llrint(<vscale x 16 x double> poison)80  ret void81}82 83define void @llrint_fp16() {84; CHECK-LABEL: 'llrint_fp16'85; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llrint.nxv2i64.nxv2f16(<vscale x 2 x half> poison)86; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llrint.nxv4i64.nxv4f16(<vscale x 4 x half> poison)87; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llrint.nxv8i64.nxv8f16(<vscale x 8 x half> poison)88; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llrint.nxv16i64.nxv16f16(<vscale x 16 x half> poison)89; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void90;91  call <vscale x 2 x i64> @llvm.llrint(<vscale x 2 x half> poison)92  call <vscale x 4 x i64> @llvm.llrint(<vscale x 4 x half> poison)93  call <vscale x 8 x i64> @llvm.llrint(<vscale x 8 x half> poison)94  call <vscale x 16 x i64> @llvm.llrint(<vscale x 16 x half> poison)95  ret void96}97 98define void @llrint_bf16() {99; CHECK-LABEL: 'llrint_bf16'100; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llrint.nxv2i64.nxv2bf16(<vscale x 2 x bfloat> poison)101; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llrint.nxv4i64.nxv4bf16(<vscale x 4 x bfloat> poison)102; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llrint.nxv8i64.nxv8bf16(<vscale x 8 x bfloat> poison)103; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llrint.nxv16i64.nxv16bf16(<vscale x 16 x bfloat> poison)104; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void105;106  call <vscale x 2 x i64> @llvm.llrint(<vscale x 2 x bfloat> poison)107  call <vscale x 4 x i64> @llvm.llrint(<vscale x 4 x bfloat> poison)108  call <vscale x 8 x i64> @llvm.llrint(<vscale x 8 x bfloat> poison)109  call <vscale x 16 x i64> @llvm.llrint(<vscale x 16 x bfloat> poison)110  ret void111}112 113 114define void @lround() {115; CHECK-LABEL: 'lround'116; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lround.nxv2i64.nxv2f32(<vscale x 2 x float> poison)117; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lround.nxv4i64.nxv4f32(<vscale x 4 x float> poison)118; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lround.nxv8i64.nxv8f32(<vscale x 8 x float> poison)119; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lround.nxv16i64.nxv16f32(<vscale x 16 x float> poison)120; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %5 = call <vscale x 2 x i64> @llvm.lround.nxv2i64.nxv2f64(<vscale x 2 x double> poison)121; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %6 = call <vscale x 4 x i64> @llvm.lround.nxv4i64.nxv4f64(<vscale x 4 x double> poison)122; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %7 = call <vscale x 8 x i64> @llvm.lround.nxv8i64.nxv8f64(<vscale x 8 x double> poison)123; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %8 = call <vscale x 16 x i64> @llvm.lround.nxv16i64.nxv16f64(<vscale x 16 x double> poison)124; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void125;126  call <vscale x 2 x i64> @llvm.lround(<vscale x 2 x float> poison)127  call <vscale x 4 x i64> @llvm.lround(<vscale x 4 x float> poison)128  call <vscale x 8 x i64> @llvm.lround(<vscale x 8 x float> poison)129  call <vscale x 16 x i64> @llvm.lround(<vscale x 16 x float> poison)130  call <vscale x 2 x i64> @llvm.lround(<vscale x 2 x double> poison)131  call <vscale x 4 x i64> @llvm.lround(<vscale x 4 x double> poison)132  call <vscale x 8 x i64> @llvm.lround(<vscale x 8 x double> poison)133  call <vscale x 16 x i64> @llvm.lround(<vscale x 16 x double> poison)134  ret void135}136 137define void @lround_fp16() {138; CHECK-LABEL: 'lround_fp16'139; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lround.nxv2i64.nxv2f16(<vscale x 2 x half> poison)140; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lround.nxv4i64.nxv4f16(<vscale x 4 x half> poison)141; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lround.nxv8i64.nxv8f16(<vscale x 8 x half> poison)142; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lround.nxv16i64.nxv16f16(<vscale x 16 x half> poison)143; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void144;145  call <vscale x 2 x i64> @llvm.lround(<vscale x 2 x half> poison)146  call <vscale x 4 x i64> @llvm.lround(<vscale x 4 x half> poison)147  call <vscale x 8 x i64> @llvm.lround(<vscale x 8 x half> poison)148  call <vscale x 16 x i64> @llvm.lround(<vscale x 16 x half> poison)149  ret void150}151 152define void @lround_bf16() {153; CHECK-LABEL: 'lround_bf16'154; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.lround.nxv2i64.nxv2bf16(<vscale x 2 x bfloat> poison)155; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.lround.nxv4i64.nxv4bf16(<vscale x 4 x bfloat> poison)156; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.lround.nxv8i64.nxv8bf16(<vscale x 8 x bfloat> poison)157; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.lround.nxv16i64.nxv16bf16(<vscale x 16 x bfloat> poison)158; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void159;160  call <vscale x 2 x i64> @llvm.lround(<vscale x 2 x bfloat> poison)161  call <vscale x 4 x i64> @llvm.lround(<vscale x 4 x bfloat> poison)162  call <vscale x 8 x i64> @llvm.lround(<vscale x 8 x bfloat> poison)163  call <vscale x 16 x i64> @llvm.lround(<vscale x 16 x bfloat> poison)164  ret void165}166 167define void @llround() {168; CHECK-LABEL: 'llround'169; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llround.nxv2i64.nxv2f32(<vscale x 2 x float> poison)170; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llround.nxv4i64.nxv4f32(<vscale x 4 x float> poison)171; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llround.nxv8i64.nxv8f32(<vscale x 8 x float> poison)172; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llround.nxv16i64.nxv16f32(<vscale x 16 x float> poison)173; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %5 = call <vscale x 2 x i64> @llvm.llround.nxv2i64.nxv2f64(<vscale x 2 x double> poison)174; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %6 = call <vscale x 4 x i64> @llvm.llround.nxv4i64.nxv4f64(<vscale x 4 x double> poison)175; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %7 = call <vscale x 8 x i64> @llvm.llround.nxv8i64.nxv8f64(<vscale x 8 x double> poison)176; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %8 = call <vscale x 16 x i64> @llvm.llround.nxv16i64.nxv16f64(<vscale x 16 x double> poison)177; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void178;179  call <vscale x 2 x i64> @llvm.llround(<vscale x 2 x float> poison)180  call <vscale x 4 x i64> @llvm.llround(<vscale x 4 x float> poison)181  call <vscale x 8 x i64> @llvm.llround(<vscale x 8 x float> poison)182  call <vscale x 16 x i64> @llvm.llround(<vscale x 16 x float> poison)183  call <vscale x 2 x i64> @llvm.llround(<vscale x 2 x double> poison)184  call <vscale x 4 x i64> @llvm.llround(<vscale x 4 x double> poison)185  call <vscale x 8 x i64> @llvm.llround(<vscale x 8 x double> poison)186  call <vscale x 16 x i64> @llvm.llround(<vscale x 16 x double> poison)187  ret void188}189 190define void @llround_fp16() {191; CHECK-LABEL: 'llround_fp16'192; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llround.nxv2i64.nxv2f16(<vscale x 2 x half> poison)193; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llround.nxv4i64.nxv4f16(<vscale x 4 x half> poison)194; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llround.nxv8i64.nxv8f16(<vscale x 8 x half> poison)195; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llround.nxv16i64.nxv16f16(<vscale x 16 x half> poison)196; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void197;198  call <vscale x 2 x i64> @llvm.llround(<vscale x 2 x half> poison)199  call <vscale x 4 x i64> @llvm.llround(<vscale x 4 x half> poison)200  call <vscale x 8 x i64> @llvm.llround(<vscale x 8 x half> poison)201  call <vscale x 16 x i64> @llvm.llround(<vscale x 16 x half> poison)202  ret void203}204 205define void @llround_bf16() {206; CHECK-LABEL: 'llround_bf16'207; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %1 = call <vscale x 2 x i64> @llvm.llround.nxv2i64.nxv2bf16(<vscale x 2 x bfloat> poison)208; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %2 = call <vscale x 4 x i64> @llvm.llround.nxv4i64.nxv4bf16(<vscale x 4 x bfloat> poison)209; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %3 = call <vscale x 8 x i64> @llvm.llround.nxv8i64.nxv8bf16(<vscale x 8 x bfloat> poison)210; CHECK-NEXT:  Cost Model: Found costs of Invalid for: %4 = call <vscale x 16 x i64> @llvm.llround.nxv16i64.nxv16bf16(<vscale x 16 x bfloat> poison)211; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void212;213  call <vscale x 2 x i64> @llvm.llround(<vscale x 2 x bfloat> poison)214  call <vscale x 4 x i64> @llvm.llround(<vscale x 4 x bfloat> poison)215  call <vscale x 8 x i64> @llvm.llround(<vscale x 8 x bfloat> poison)216  call <vscale x 16 x i64> @llvm.llround(<vscale x 16 x bfloat> poison)217  ret void218}219