; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64 -mattr=+sve2 %s | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64-linux-gnu" define void @lrint() { ; CHECK-LABEL: 'lrint' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lrint.nxv2i64.nxv2f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lrint.nxv4i64.nxv4f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lrint.nxv8i64.nxv8f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lrint.nxv16i64.nxv16f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %5 = call @llvm.lrint.nxv2i64.nxv2f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %6 = call @llvm.lrint.nxv4i64.nxv4f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %7 = call @llvm.lrint.nxv8i64.nxv8f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %8 = call @llvm.lrint.nxv16i64.nxv16f64( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) ret void } define void @lrint_fp16() { ; CHECK-LABEL: 'lrint_fp16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lrint.nxv2i64.nxv2f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lrint.nxv4i64.nxv4f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lrint.nxv8i64.nxv8f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lrint.nxv16i64.nxv16f16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) ret void } define void @lrint_bf16() { ; CHECK-LABEL: 'lrint_bf16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lrint.nxv2i64.nxv2bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lrint.nxv4i64.nxv4bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lrint.nxv8i64.nxv8bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lrint.nxv16i64.nxv16bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) call @llvm.lrint( poison) ret void } define void @llrint() { ; CHECK-LABEL: 'llrint' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llrint.nxv2i64.nxv2f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llrint.nxv4i64.nxv4f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llrint.nxv8i64.nxv8f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llrint.nxv16i64.nxv16f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %5 = call @llvm.llrint.nxv2i64.nxv2f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %6 = call @llvm.llrint.nxv4i64.nxv4f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %7 = call @llvm.llrint.nxv8i64.nxv8f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %8 = call @llvm.llrint.nxv16i64.nxv16f64( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) ret void } define void @llrint_fp16() { ; CHECK-LABEL: 'llrint_fp16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llrint.nxv2i64.nxv2f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llrint.nxv4i64.nxv4f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llrint.nxv8i64.nxv8f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llrint.nxv16i64.nxv16f16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) ret void } define void @llrint_bf16() { ; CHECK-LABEL: 'llrint_bf16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llrint.nxv2i64.nxv2bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llrint.nxv4i64.nxv4bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llrint.nxv8i64.nxv8bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llrint.nxv16i64.nxv16bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) call @llvm.llrint( poison) ret void } define void @lround() { ; CHECK-LABEL: 'lround' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lround.nxv2i64.nxv2f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lround.nxv4i64.nxv4f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lround.nxv8i64.nxv8f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lround.nxv16i64.nxv16f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %5 = call @llvm.lround.nxv2i64.nxv2f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %6 = call @llvm.lround.nxv4i64.nxv4f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %7 = call @llvm.lround.nxv8i64.nxv8f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %8 = call @llvm.lround.nxv16i64.nxv16f64( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) ret void } define void @lround_fp16() { ; CHECK-LABEL: 'lround_fp16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lround.nxv2i64.nxv2f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lround.nxv4i64.nxv4f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lround.nxv8i64.nxv8f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lround.nxv16i64.nxv16f16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) ret void } define void @lround_bf16() { ; CHECK-LABEL: 'lround_bf16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.lround.nxv2i64.nxv2bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.lround.nxv4i64.nxv4bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.lround.nxv8i64.nxv8bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.lround.nxv16i64.nxv16bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) call @llvm.lround( poison) ret void } define void @llround() { ; CHECK-LABEL: 'llround' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llround.nxv2i64.nxv2f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llround.nxv4i64.nxv4f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llround.nxv8i64.nxv8f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llround.nxv16i64.nxv16f32( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %5 = call @llvm.llround.nxv2i64.nxv2f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %6 = call @llvm.llround.nxv4i64.nxv4f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %7 = call @llvm.llround.nxv8i64.nxv8f64( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %8 = call @llvm.llround.nxv16i64.nxv16f64( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) ret void } define void @llround_fp16() { ; CHECK-LABEL: 'llround_fp16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llround.nxv2i64.nxv2f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llround.nxv4i64.nxv4f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llround.nxv8i64.nxv8f16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llround.nxv16i64.nxv16f16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) ret void } define void @llround_bf16() { ; CHECK-LABEL: 'llround_bf16' ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %1 = call @llvm.llround.nxv2i64.nxv2bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %2 = call @llvm.llround.nxv4i64.nxv4bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %3 = call @llvm.llround.nxv8i64.nxv8bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of Invalid for: %4 = call @llvm.llround.nxv16i64.nxv16bf16( poison) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) call @llvm.llround( poison) ret void }