[llvm] [AArch64] Update some arith and mul tests. NFC (PR #207589)

David Green via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 5 08:18:34 PDT 2026


https://github.com/davemgreen created https://github.com/llvm/llvm-project/pull/207589

None

>From b85bdd4e6e7f0d36ba2abb9350a776c055d94f3f Mon Sep 17 00:00:00 2001
From: David Green <david.green at arm.com>
Date: Sun, 5 Jul 2026 16:18:23 +0100
Subject: [PATCH] [AArch64] Update some arith and mul tests. NFC

---
 llvm/test/Analysis/CostModel/AArch64/arith.ll |  25 ++
 llvm/test/Analysis/CostModel/AArch64/mul.ll   | 238 +++++++++++-------
 2 files changed, 168 insertions(+), 95 deletions(-)

diff --git a/llvm/test/Analysis/CostModel/AArch64/arith.ll b/llvm/test/Analysis/CostModel/AArch64/arith.ll
index dc7a3c4ccc0e3..dd30dc63ddc85 100644
--- a/llvm/test/Analysis/CostModel/AArch64/arith.ll
+++ b/llvm/test/Analysis/CostModel/AArch64/arith.ll
@@ -153,6 +153,31 @@ define void @i128() {
   ret void
 }
 
+define void @i256() {
+; CHECK-LABEL: 'i256'
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %c = add i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %d = sub i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e = mul i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %f = ashr i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %g = lshr i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %h = shl i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %i = and i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %j = or i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %k = xor i256 undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
+;
+  %c = add i256 undef, undef
+  %d = sub i256 undef, undef
+  %e = mul i256 undef, undef
+  %f = ashr i256 undef, undef
+  %g = lshr i256 undef, undef
+  %h = shl i256 undef, undef
+  %i = and i256 undef, undef
+  %j = or i256 undef, undef
+  %k = xor i256 undef, undef
+  ret void
+}
+
 
 define void @vi8() {
 ; CHECK-LABEL: 'vi8'
diff --git a/llvm/test/Analysis/CostModel/AArch64/mul.ll b/llvm/test/Analysis/CostModel/AArch64/mul.ll
index 7f65ddea582eb..9b3f1ff898dd3 100644
--- a/llvm/test/Analysis/CostModel/AArch64/mul.ll
+++ b/llvm/test/Analysis/CostModel/AArch64/mul.ll
@@ -1,132 +1,180 @@
 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
-; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 < %s | FileCheck %s
-
-; Verify the cost of (vector) multiply instructions.
+; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-NOSVE
+; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 -mattr=+sve2 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-SVE
 
 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
 
-define <2 x i8> @t1(<2 x i8> %a, <2 x i8> %b)  {
-; CHECK-LABEL: 't1'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <2 x i8> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i8> %1
-;
-  %1 = mul <2 x i8> %a, %b
-  ret <2 x i8> %1
-}
+; Verify the cost of (vector) multiply instructions.
 
-define <4 x i8> @t2(<4 x i8> %a, <4 x i8> %b)  {
-; CHECK-LABEL: 't2'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <4 x i8> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i8> %1
+define void @vi8() {
+; CHECK-LABEL: 'vi8'
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <2 x i8> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <4 x i8> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e8 = mul <8 x i8> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e16 = mul <16 x i8> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <4 x i8> %a, %b
-  ret <4 x i8> %1
+  %e2 = mul <2 x i8> undef, undef
+  %e4 = mul <4 x i8> undef, undef
+  %e8 = mul <8 x i8> undef, undef
+  %e16 = mul <16 x i8> undef, undef
+  ret void
 }
 
-define <8 x i8> @t3(<8 x i8> %a, <8 x i8> %b)  {
-; CHECK-LABEL: 't3'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <8 x i8> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i8> %1
+define void @vi16() {
+; CHECK-LABEL: 'vi16'
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <2 x i16> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <4 x i16> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e8 = mul <8 x i16> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <16 x i16> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <8 x i8> %a, %b
-  ret <8 x i8> %1
+  %e2 = mul <2 x i16> undef, undef
+  %e4 = mul <4 x i16> undef, undef
+  %e8 = mul <8 x i16> undef, undef
+  %e16 = mul <16 x i16> undef, undef
+  ret void
 }
 
-define <16 x i8> @t4(<16 x i8> %a, <16 x i8> %b)  {
-; CHECK-LABEL: 't4'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <16 x i8> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %1
+define void @vi32() {
+; CHECK-LABEL: 'vi32'
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <2 x i32> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <4 x i32> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <8 x i32> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <16 x i32> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <16 x i8> %a, %b
-  ret <16 x i8> %1
+  %e2 = mul <2 x i32> undef, undef
+  %e4 = mul <4 x i32> undef, undef
+  %e8 = mul <8 x i32> undef, undef
+  %e16 = mul <16 x i32> undef, undef
+  ret void
 }
 
-define <32 x i8> @t5(<32 x i8> %a, <32 x i8> %b)  {
-; CHECK-LABEL: 't5'
-; CHECK-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %1 = mul <32 x i8> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %1
+define void @vi64() {
+; CHECK-NOSVE-LABEL: 'vi64'
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <2 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <4 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:56 CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <8 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:112 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <16 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <32 x i8> %a, %b
-  ret <32 x i8> %1
-}
-
-define <2 x i16> @t6(<2 x i16> %a, <2 x i16> %b)  {
-; CHECK-LABEL: 't6'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <2 x i16> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i16> %1
+; CHECK-SVE-LABEL: 'vi64'
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <2 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <4 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <8 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <16 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <2 x i16> %a, %b
-  ret <2 x i16> %1
+  %e2 = mul <2 x i64> undef, undef
+  %e4 = mul <4 x i64> undef, undef
+  %e8 = mul <8 x i64> undef, undef
+  %e16 = mul <16 x i64> undef, undef
+  ret void
 }
 
-define <4 x i16> @t7(<4 x i16> %a, <4 x i16> %b)  {
-; CHECK-LABEL: 't7'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <4 x i16> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i16> %1
+define void @vi128() {
+; CHECK-LABEL: 'vi128'
+; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <2 x i128> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <4 x i16> %a, %b
-  ret <4 x i16> %1
+  %e2 = mul <2 x i128> undef, undef
+  ret void
 }
 
-define <8 x i16> @t8(<8 x i16> %a, <8 x i16> %b)  {
-; CHECK-LABEL: 't8'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <8 x i16> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %1
+define void @xvi8() {
+; CHECK-NOSVE-LABEL: 'xvi8'
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <vscale x 2 x i8> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <vscale x 4 x i8> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i8> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i8> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <8 x i16> %a, %b
-  ret <8 x i16> %1
-}
-
-define <16 x i16> @t9(<16 x i16> %a, <16 x i16> %b)  {
-; CHECK-LABEL: 't9'
-; CHECK-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %1 = mul <16 x i16> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %1
+; CHECK-SVE-LABEL: 'xvi8'
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <vscale x 2 x i8> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <vscale x 4 x i8> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e8 = mul <vscale x 8 x i8> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e16 = mul <vscale x 16 x i8> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <16 x i16> %a, %b
-  ret <16 x i16> %1
+  %e2 = mul <vscale x 2 x i8> undef, undef
+  %e4 = mul <vscale x 4 x i8> undef, undef
+  %e8 = mul <vscale x 8 x i8> undef, undef
+  %e16 = mul <vscale x 16 x i8> undef, undef
+  ret void
 }
 
-define <2 x i32> @t10(<2 x i32> %a, <2 x i32> %b)  {
-; CHECK-LABEL: 't10'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <2 x i32> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i32> %1
+define void @nxvi16() {
+; CHECK-NOSVE-LABEL: 'nxvi16'
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <vscale x 2 x i16> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <vscale x 4 x i16> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i16> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i16> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <2 x i32> %a, %b
-  ret <2 x i32> %1
-}
-
-define <4 x i32> @t11(<4 x i32> %a, <4 x i32> %b)  {
-; CHECK-LABEL: 't11'
-; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = mul <4 x i32> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %1
+; CHECK-SVE-LABEL: 'nxvi16'
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <vscale x 2 x i16> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <vscale x 4 x i16> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e8 = mul <vscale x 8 x i16> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i16> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <4 x i32> %a, %b
-  ret <4 x i32> %1
+  %e2 = mul <vscale x 2 x i16> undef, undef
+  %e4 = mul <vscale x 4 x i16> undef, undef
+  %e8 = mul <vscale x 8 x i16> undef, undef
+  %e16 = mul <vscale x 16 x i16> undef, undef
+  ret void
 }
 
-define <8 x i32> @t12(<8 x i32> %a, <8 x i32> %b)  {
-; CHECK-LABEL: 't12'
-; CHECK-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %1 = mul <8 x i32> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %1
+define void @nxvi32() {
+; CHECK-NOSVE-LABEL: 'nxvi32'
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <vscale x 2 x i32> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <vscale x 4 x i32> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i32> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i32> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
+;
+; CHECK-SVE-LABEL: 'nxvi32'
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <vscale x 2 x i32> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e4 = mul <vscale x 4 x i32> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i32> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i32> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul <8 x i32> %a, %b
-  ret <8 x i32> %1
+  %e2 = mul <vscale x 2 x i32> undef, undef
+  %e4 = mul <vscale x 4 x i32> undef, undef
+  %e8 = mul <vscale x 8 x i32> undef, undef
+  %e16 = mul <vscale x 16 x i32> undef, undef
+  ret void
 }
 
-define <2 x i64> @t13(<2 x i64> %a, <2 x i64> %b)  {
-; CHECK-LABEL: 't13'
-; CHECK-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %1 = mul nsw <2 x i64> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %1
+define void @nxvi64() {
+; CHECK-NOSVE-LABEL: 'nxvi64'
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <vscale x 2 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <vscale x 4 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i64> undef, undef
+; CHECK-NOSVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
+;
+; CHECK-SVE-LABEL: 'nxvi64'
+; CHECK-SVE-NEXT:  Cost Model: Found costs of 1 for: %e2 = mul <vscale x 2 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %e4 = mul <vscale x 4 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %e8 = mul <vscale x 8 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %e16 = mul <vscale x 16 x i64> undef, undef
+; CHECK-SVE-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul nsw <2 x i64> %a, %b
-  ret <2 x i64> %1
+  %e2 = mul <vscale x 2 x i64> undef, undef
+  %e4 = mul <vscale x 4 x i64> undef, undef
+  %e8 = mul <vscale x 8 x i64> undef, undef
+  %e16 = mul <vscale x 16 x i64> undef, undef
+  ret void
 }
 
-define <4 x i64> @t14(<4 x i64> %a, <4 x i64> %b)  {
-; CHECK-LABEL: 't14'
-; CHECK-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %1 = mul nsw <4 x i64> %a, %b
-; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %1
+define void @nxvi128() {
+; CHECK-LABEL: 'nxvi128'
+; CHECK-NEXT:  Cost Model: Found costs of RThru:Invalid CodeSize:1 Lat:1 SizeLat:1 for: %e2 = mul <vscale x 2 x i128> undef, undef
+; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void
 ;
-  %1 = mul nsw <4 x i64> %a, %b
-  ret <4 x i64> %1
+  %e2 = mul <vscale x 2 x i128> undef, undef
+  ret void
 }



More information about the llvm-commits mailing list