• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2-aes -asm-verbose=0 < %s 2>%t | FileCheck %s
2; RUN: FileCheck --check-prefix=WARN --allow-empty %s <%t
3
4; If this check fails please read test/CodeGen/AArch64/README for instructions on how to resolve it.
5; WARN-NOT: warning
6
7;
8; PMULLB
9;
10
11define <vscale x 2 x i64> @pmullb_i64(<vscale x 2 x i64> %a, <vscale x 2 x i64> %b) {
12; CHECK-LABEL: pmullb_i64:
13; CHECK: pmullb z0.q, z0.d, z1.d
14; CHECK-NEXT: ret
15  %out = call <vscale x 2 x i64> @llvm.aarch64.sve.pmullb.pair.nxv2i64(<vscale x 2 x i64> %a,
16                                                                       <vscale x 2 x i64> %b)
17  ret <vscale x 2 x i64> %out
18}
19
20;
21; PMULLT
22;
23
24define <vscale x 2 x i64> @pmullt_i64(<vscale x 2 x i64> %a, <vscale x 2 x i64> %b) {
25; CHECK-LABEL: pmullt_i64:
26; CHECK: pmullt z0.q, z0.d, z1.d
27; CHECK-NEXT: ret
28  %out = call <vscale x 2 x i64> @llvm.aarch64.sve.pmullt.pair.nxv2i64(<vscale x 2 x i64> %a,
29                                                                       <vscale x 2 x i64> %b)
30  ret <vscale x 2 x i64> %out
31}
32
33declare <vscale x 2 x i64> @llvm.aarch64.sve.pmullb.pair.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>)
34
35declare <vscale x 2 x i64> @llvm.aarch64.sve.pmullt.pair.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>)
36