76 lines · plain
1REQUIRES: aarch64-registered-target2 3## PPR Register Class Initialization Testcase4## Ideally, we should use PTRUE_{B/H/S/D} instead of FADDV_VPZ_D for an isolated test case; 5## However, exegesis does not yet support PTRUE_{B/H/S/D}.6RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=FADDV_VPZ_D --benchmark-phase=assemble-measured-code 2>&17RUN: llvm-objdump -d %d > %t.s8RUN: FileCheck %s --check-prefix=PPR_ASM < %t.s9PPR_ASM: <foo>:10PPR_ASM: ptrue p{{[0-9]+}}.b11PPR_ASM-NEXT: mov z{{[0-9]+}}.d, #0x012PPR_ASM-NEXT: faddv d{{[0-9]+}}, p{{[0-9]+}}, z{{[0-9]+}}13 14## ZPR Register Class Initialization Testcase15## Ideally, we should use DUP_ZI_{B/H/S/D} instead of FADDV_VPZ_D for an isolated test case; 16## However, exegesis does not yet support DUP_ZI_{B/H/S/D}.17RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=FADDV_VPZ_D --benchmark-phase=assemble-measured-code 2>&118RUN: llvm-objdump -d %d > %t.s19RUN: FileCheck %s --check-prefix=ZPR_ASM < %t.s20ZPR_ASM: <foo>:21ZPR_ASM: ptrue p{{[0-9]+}}.b22ZPR_ASM-NEXT: mov z{{[0-9]+}}.d, #0x023ZPR_ASM-NEXT: faddv d{{[0-9]+}}, p{{[0-9]+}}, z{{[0-9]+}}24 25## FPR128 Register Class Initialization Testcase26RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=ADDVv16i8v --benchmark-phase=assemble-measured-code 2>&127RUN: llvm-objdump -d %d > %t.s28RUN: FileCheck %s --check-prefix=FPR128-ASM < %t.s29FPR128-ASM: <foo>:30FPR128-ASM: movi v{{[0-9]+}}.2d, #000000000000000031FPR128-ASM-NEXT: addv b{{[0-9]+}}, v{{[0-9]+}}.16b32 33## FPR64 Register Class Initialization Testcase34RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=ADDVv4i16v --benchmark-phase=assemble-measured-code 2>&135RUN: llvm-objdump -d %d > %t.s36RUN: FileCheck %s --check-prefix=FPR64-ASM < %t.s37FPR64-ASM: <foo>:38FPR64-ASM: movi d{{[0-9]+}}, #000000000000000039FPR64-ASM-NEXT: addv h{{[0-9]+}}, v{{[0-9]+}}.4h40 41## FPR32 Register Class Initialization Testcase42RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=FABSSr --benchmark-phase=assemble-measured-code 2>&143RUN: llvm-objdump -d %d > %t.s44RUN: FileCheck %s --check-prefix=FPR32-ASM < %t.s45FPR32-ASM: <foo>:46FPR32-ASM: movi d{{[0-9]+}}, #000000000000000047FPR32-ASM-NEXT: fabs s{{[0-9]+}}, s{{[0-9]+}}48 49 50## FPR16 Register Class Initialization Testcase51RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=FABSHr --benchmark-phase=assemble-measured-code 2>&152RUN: llvm-objdump -d %d > %t.s53RUN: FileCheck %s --check-prefix=FPR16-ASM < %t.s54FPR16-ASM: <foo>:55FPR16-ASM: movi d{{[0-9]+}}, #000000000000000056FPR16-ASM-NEXT: fabs h{{[0-9]+}}, h{{[0-9]+}}57 58## FPR8 Register Class Initialization Testcase59RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=SQABSv1i8 --benchmark-phase=assemble-measured-code 2>&160RUN: llvm-objdump -d %d > %t.s61RUN: FileCheck %s --check-prefix=FPR8-ASM < %t.s62FPR8-ASM: <foo>:63FPR8-ASM: movi d{{[0-9]+}}, #000000000000000064FPR8-ASM-NEXT: sqabs b{{[0-9]+}}, b{{[0-9]+}}65 66 67## FPCR Register Class Initialization Testcase68RUN: llvm-exegesis -mtriple=aarch64 -mcpu=neoverse-v2 -mode=latency --dump-object-to-disk=%d --opcode-name=BFCVT --benchmark-phase=assemble-measured-code 2>&169RUN: llvm-objdump -d %d > %t.s70RUN: FileCheck %s --check-prefix=FPCR-ASM < %t.s71FPCR-ASM: <foo>:72FPCR-ASM: movi d{{[0-9]+}}, #000000000000000073FPCR-ASM-NEXT: mov x8, #0x074FPCR-ASM-NEXT: msr FPCR, x875FPCR-ASM-NEXT: bfcvt h{{[0-9]+}}, s{{[0-9]+}}76