From 34aedbe90d7667a3fd1e0427808648364b594034 Mon Sep 17 00:00:00 2001 From: Paul Walker Date: Mon, 24 Jan 2022 12:03:16 +0000 Subject: [PATCH] [AArch64] Regenerate CHECK lines for llvm/test/CodeGen/AArch64/sve2-int-mul.ll --- llvm/test/CodeGen/AArch64/sve2-int-mul.ll | 208 +++++++++++++++++------------- 1 file changed, 121 insertions(+), 87 deletions(-) diff --git a/llvm/test/CodeGen/AArch64/sve2-int-mul.ll b/llvm/test/CodeGen/AArch64/sve2-int-mul.ll index 6e495b0..57d5775 100644 --- a/llvm/test/CodeGen/AArch64/sve2-int-mul.ll +++ b/llvm/test/CodeGen/AArch64/sve2-int-mul.ll @@ -1,13 +1,16 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2 < %s | FileCheck %s ; ; MUL with SPLAT ; define @mul_i16_imm( %a) { -; CHECK-LABEL: mul_i16_imm -; CHECK: mov w[[W:[0-9]+]], #255 -; CHECK-NEXT: mov z1.h, w[[W]] -; CHECK-NEXT: mul z0.h, z0.h, z1.h +; CHECK-LABEL: mul_i16_imm: +; CHECK: // %bb.0: +; CHECK-NEXT: mov w8, #255 +; CHECK-NEXT: mov z1.h, w8 +; CHECK-NEXT: mul z0.h, z0.h, z1.h +; CHECK-NEXT: ret %elt = insertelement undef, i16 255, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -15,10 +18,12 @@ define @mul_i16_imm( %a) { } define @mul_i16_imm_neg( %a) { -; CHECK-LABEL: mul_i16_imm_neg -; CHECK: mov w[[W:[0-9]+]], #-200 -; CHECK-NEXT: mov z1.h, w[[W]] -; CHECK-NEXT: mul z0.h, z0.h, z1.h +; CHECK-LABEL: mul_i16_imm_neg: +; CHECK: // %bb.0: +; CHECK-NEXT: mov w8, #-200 +; CHECK-NEXT: mov z1.h, w8 +; CHECK-NEXT: mul z0.h, z0.h, z1.h +; CHECK-NEXT: ret %elt = insertelement undef, i16 -200, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -26,10 +31,12 @@ define @mul_i16_imm_neg( %a) { } define @mul_i32_imm( %a) { -; CHECK-LABEL: mul_i32_imm -; CHECK: mov w[[W:[0-9]+]], #255 -; CHECK-NEXT: mov z1.s, w[[W]] -; CHECK-NEXT: mul z0.s, z0.s, z1.s +; CHECK-LABEL: mul_i32_imm: +; CHECK: // %bb.0: +; CHECK-NEXT: mov w8, #255 +; CHECK-NEXT: mov z1.s, w8 +; CHECK-NEXT: mul z0.s, z0.s, z1.s +; CHECK-NEXT: ret %elt = insertelement undef, i32 255, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -37,10 +44,12 @@ define @mul_i32_imm( %a) { } define @mul_i32_imm_neg( %a) { -; CHECK-LABEL: mul_i32_imm_neg -; CHECK: mov w[[W:[0-9]+]], #-200 -; CHECK-NEXT: mov z1.s, w[[W]] -; CHECK-NEXT: mul z0.s, z0.s, z1.s +; CHECK-LABEL: mul_i32_imm_neg: +; CHECK: // %bb.0: +; CHECK-NEXT: mov w8, #-200 +; CHECK-NEXT: mov z1.s, w8 +; CHECK-NEXT: mul z0.s, z0.s, z1.s +; CHECK-NEXT: ret %elt = insertelement undef, i32 -200, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -48,10 +57,12 @@ define @mul_i32_imm_neg( %a) { } define @mul_i64_imm( %a) { -; CHECK-LABEL: mul_i64_imm -; CHECK: mov w[[X:[0-9]+]], #255 -; CHECK-NEXT: z1.d, x[[X]] -; CHECK-NEXT: mul z0.d, z0.d, z1.d +; CHECK-LABEL: mul_i64_imm: +; CHECK: // %bb.0: +; CHECK-NEXT: mov w8, #255 +; CHECK-NEXT: mov z1.d, x8 +; CHECK-NEXT: mul z0.d, z0.d, z1.d +; CHECK-NEXT: ret %elt = insertelement undef, i64 255, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -59,10 +70,12 @@ define @mul_i64_imm( %a) { } define @mul_i64_imm_neg( %a) { -; CHECK-LABEL: mul_i64_imm_neg -; CHECK: mov x[[X:[0-9]+]], #-200 -; CHECK-NEXT: z1.d, x[[X]] -; CHECK-NEXT: mul z0.d, z0.d, z1.d +; CHECK-LABEL: mul_i64_imm_neg: +; CHECK: // %bb.0: +; CHECK-NEXT: mov x8, #-200 +; CHECK-NEXT: mov z1.d, x8 +; CHECK-NEXT: mul z0.d, z0.d, z1.d +; CHECK-NEXT: ret %elt = insertelement undef, i64 -200, i32 0 %splat = shufflevector %elt, undef, zeroinitializer %res = mul %a, %splat @@ -73,37 +86,41 @@ define @mul_i64_imm_neg( %a) { ; MUL (vector, unpredicated) ; define @mul_i8( %a, +; CHECK-LABEL: mul_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: mul z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: mul_i8 -; CHECK: mul z0.b, z0.b, z1.b -; CHECK-NEXT: ret %res = mul %a, %b ret %res } define @mul_i16( %a, +; CHECK-LABEL: mul_i16: +; CHECK: // %bb.0: +; CHECK-NEXT: mul z0.h, z0.h, z1.h +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: mul_i16 -; CHECK: mul z0.h, z0.h, z1.h -; CHECK-NEXT: ret %res = mul %a, %b ret %res } define @mul_i32( %a, +; CHECK-LABEL: mul_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: mul z0.s, z0.s, z1.s +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: mul_i32 -; CHECK: mul z0.s, z0.s, z1.s -; CHECK-NEXT: ret %res = mul %a, %b ret %res } define @mul_i64( %a, +; CHECK-LABEL: mul_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: mul z0.d, z0.d, z1.d +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: mul_i64 -; CHECK: mul z0.d, z0.d, z1.d -; CHECK-NEXT: ret %res = mul %a, %b ret %res } @@ -112,10 +129,11 @@ define @mul_i64( %a, ; SMULH (vector, unpredicated) ; define @smulh_i8( %a, +; CHECK-LABEL: smulh_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: smulh z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: smulh_i8 -; CHECK: smulh z0.b, z0.b, z1.b -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) %res = call @llvm.aarch64.sve.smulh.nxv16i8( %sel, %a, %b) @@ -123,10 +141,11 @@ define @smulh_i8( %a, } define @smulh_i16( %a, +; CHECK-LABEL: smulh_i16: +; CHECK: // %bb.0: +; CHECK-NEXT: smulh z0.h, z0.h, z1.h +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: smulh_i16 -; CHECK: smulh z0.h, z0.h, z1.h -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) %res = call @llvm.aarch64.sve.smulh.nxv8i16( %sel, %a, %b) @@ -134,10 +153,11 @@ define @smulh_i16( %a, } define @smulh_i32( %a, +; CHECK-LABEL: smulh_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: smulh z0.s, z0.s, z1.s +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: smulh_i32 -; CHECK: smulh z0.s, z0.s, z1.s -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv4i1(i32 31) %res = call @llvm.aarch64.sve.smulh.nxv4i32( %sel, %a, %b) @@ -145,10 +165,11 @@ define @smulh_i32( %a, } define @smulh_i64( %a, +; CHECK-LABEL: smulh_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: smulh z0.d, z0.d, z1.d +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: smulh_i64 -; CHECK: smulh z0.d, z0.d, z1.d -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv2i1(i32 31) %res = call @llvm.aarch64.sve.smulh.nxv2i64( %sel, %a, %b) @@ -159,10 +180,11 @@ define @smulh_i64( %a, ; UMULH (vector, unpredicated) ; define @umulh_i8( %a, +; CHECK-LABEL: umulh_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: umulh z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: umulh_i8 -; CHECK: umulh z0.b, z0.b, z1.b -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) %res = call @llvm.aarch64.sve.umulh.nxv16i8( %sel, %a, %b) @@ -170,10 +192,11 @@ define @umulh_i8( %a, } define @umulh_i16( %a, +; CHECK-LABEL: umulh_i16: +; CHECK: // %bb.0: +; CHECK-NEXT: umulh z0.h, z0.h, z1.h +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: umulh_i16 -; CHECK: umulh z0.h, z0.h, z1.h -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) %res = call @llvm.aarch64.sve.umulh.nxv8i16( %sel, %a, %b) @@ -181,10 +204,11 @@ define @umulh_i16( %a, } define @umulh_i32( %a, +; CHECK-LABEL: umulh_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: umulh z0.s, z0.s, z1.s +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: umulh_i32 -; CHECK: umulh z0.s, z0.s, z1.s -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv4i1(i32 31) %res = call @llvm.aarch64.sve.umulh.nxv4i32( %sel, %a, %b) @@ -192,10 +216,11 @@ define @umulh_i32( %a, } define @umulh_i64( %a, +; CHECK-LABEL: umulh_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: umulh z0.d, z0.d, z1.d +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: umulh_i64 -; CHECK: umulh z0.d, z0.d, z1.d -; CHECK-NEXT: ret %sel = call @llvm.aarch64.sve.ptrue.nxv2i1(i32 31) %res = call @llvm.aarch64.sve.umulh.nxv2i64( %sel, %a, %b) @@ -206,10 +231,11 @@ define @umulh_i64( %a, ; PMUL (vector, unpredicated) ; define @pmul_i8( %a, +; CHECK-LABEL: pmul_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: pmul z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: pmul_i8 -; CHECK: pmul z0.b, z0.b, z1.b -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.pmul.nxv16i8( %a, %b) ret %res @@ -219,40 +245,44 @@ define @pmul_i8( %a, ; SQDMULH (vector, unpredicated) ; define @sqdmulh_i8( %a, +; CHECK-LABEL: sqdmulh_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: sqdmulh z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqdmulh_i8 -; CHECK: sqdmulh z0.b, z0.b, z1.b -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqdmulh.nxv16i8( %a, %b) ret %res } define @sqdmulh_i16( %a, +; CHECK-LABEL: sqdmulh_i16: +; CHECK: // %bb.0: +; CHECK-NEXT: sqdmulh z0.h, z0.h, z1.h +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqdmulh_i16 -; CHECK: sqdmulh z0.h, z0.h, z1.h -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqdmulh.nxv8i16( %a, %b) ret %res } define @sqdmulh_i32( %a, +; CHECK-LABEL: sqdmulh_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: sqdmulh z0.s, z0.s, z1.s +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqdmulh_i32 -; CHECK: sqdmulh z0.s, z0.s, z1.s -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqdmulh.nxv4i32( %a, %b) ret %res } define @sqdmulh_i64( %a, +; CHECK-LABEL: sqdmulh_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: sqdmulh z0.d, z0.d, z1.d +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqdmulh_i64 -; CHECK: sqdmulh z0.d, z0.d, z1.d -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqdmulh.nxv2i64( %a, %b) ret %res @@ -262,40 +292,44 @@ define @sqdmulh_i64( %a, ; SQRDMULH (vector, unpredicated) ; define @sqrdmulh_i8( %a, +; CHECK-LABEL: sqrdmulh_i8: +; CHECK: // %bb.0: +; CHECK-NEXT: sqrdmulh z0.b, z0.b, z1.b +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqrdmulh_i8 -; CHECK: sqrdmulh z0.b, z0.b, z1.b -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqrdmulh.nxv16i8( %a, %b) ret %res } define @sqrdmulh_i16( %a, +; CHECK-LABEL: sqrdmulh_i16: +; CHECK: // %bb.0: +; CHECK-NEXT: sqrdmulh z0.h, z0.h, z1.h +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqrdmulh_i16 -; CHECK: sqrdmulh z0.h, z0.h, z1.h -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqrdmulh.nxv8i16( %a, %b) ret %res } define @sqrdmulh_i32( %a, +; CHECK-LABEL: sqrdmulh_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: sqrdmulh z0.s, z0.s, z1.s +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqrdmulh_i32 -; CHECK: sqrdmulh z0.s, z0.s, z1.s -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqrdmulh.nxv4i32( %a, %b) ret %res } define @sqrdmulh_i64( %a, +; CHECK-LABEL: sqrdmulh_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: sqrdmulh z0.d, z0.d, z1.d +; CHECK-NEXT: ret %b) { -; CHECK-LABEL: sqrdmulh_i64 -; CHECK: sqrdmulh z0.d, z0.d, z1.d -; CHECK-NEXT: ret %res = call @llvm.aarch64.sve.sqrdmulh.nxv2i64( %a, %b) ret %res -- 2.7.4