1 ; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple=aarch64--linux-gnu -mattr=+sve < %s | FileCheck %s
3 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
5 ; Check icmp for legal integer vectors.
6 define 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.experimental.stepvector.nxv2i64()
9 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %2 = call <vscale x 4 x i32> @llvm.experimental.stepvector.nxv4i32()
10 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %3 = call <vscale x 8 x i16> @llvm.experimental.stepvector.nxv8i16()
11 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %4 = call <vscale x 16 x i8> @llvm.experimental.stepvector.nxv16i8()
12 %1 = call <vscale x 2 x i64> @llvm.experimental.stepvector.nxv2i64()
13 %2 = call <vscale x 4 x i32> @llvm.experimental.stepvector.nxv4i32()
14 %3 = call <vscale x 8 x i16> @llvm.experimental.stepvector.nxv8i16()
15 %4 = call <vscale x 16 x i8> @llvm.experimental.stepvector.nxv16i8()
19 ; Check icmp for an illegal integer vector.
20 define 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.experimental.stepvector.nxv4i64()
23 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %2 = call <vscale x 16 x i32> @llvm.experimental.stepvector.nxv16i32()
24 %1 = call <vscale x 4 x i64> @llvm.experimental.stepvector.nxv4i64()
25 %2 = call <vscale x 16 x i32> @llvm.experimental.stepvector.nxv16i32()
30 declare <vscale x 2 x i64> @llvm.experimental.stepvector.nxv2i64()
31 declare <vscale x 4 x i32> @llvm.experimental.stepvector.nxv4i32()
32 declare <vscale x 8 x i16> @llvm.experimental.stepvector.nxv8i16()
33 declare <vscale x 16 x i8> @llvm.experimental.stepvector.nxv16i8()
35 declare <vscale x 4 x i64> @llvm.experimental.stepvector.nxv4i64()
36 declare <vscale x 16 x i32> @llvm.experimental.stepvector.nxv16i32()