37 lines · plain
1; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple=aarch64--linux-gnu -mattr=+sve < %s | FileCheck %s2 3target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"4 5; Check icmp for legal integer vectors.6define void @stepvector_legal_int() {7; CHECK-LABEL: 'stepvector_legal_int'8; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %1 = call <vscale x 2 x i64> @llvm.stepvector.nxv2i64()9; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %2 = call <vscale x 4 x i32> @llvm.stepvector.nxv4i32()10; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %3 = call <vscale x 8 x i16> @llvm.stepvector.nxv8i16()11; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %4 = call <vscale x 16 x i8> @llvm.stepvector.nxv16i8()12 %1 = call <vscale x 2 x i64> @llvm.stepvector.nxv2i64()13 %2 = call <vscale x 4 x i32> @llvm.stepvector.nxv4i32()14 %3 = call <vscale x 8 x i16> @llvm.stepvector.nxv8i16()15 %4 = call <vscale x 16 x i8> @llvm.stepvector.nxv16i8()16 ret void17}18 19; Check icmp for an illegal integer vector.20define void @stepvector_illegal_int() {21; CHECK-LABEL: 'stepvector_illegal_int'22; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %1 = call <vscale x 4 x i64> @llvm.stepvector.nxv4i64()23; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %2 = call <vscale x 16 x i32> @llvm.stepvector.nxv16i32()24 %1 = call <vscale x 4 x i64> @llvm.stepvector.nxv4i64()25 %2 = call <vscale x 16 x i32> @llvm.stepvector.nxv16i32()26 ret void27}28 29 30declare <vscale x 2 x i64> @llvm.stepvector.nxv2i64()31declare <vscale x 4 x i32> @llvm.stepvector.nxv4i32()32declare <vscale x 8 x i16> @llvm.stepvector.nxv8i16()33declare <vscale x 16 x i8> @llvm.stepvector.nxv16i8()34 35declare <vscale x 4 x i64> @llvm.stepvector.nxv4i64()36declare <vscale x 16 x i32> @llvm.stepvector.nxv16i32()37