[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / irg.ll
bloba5a454ff69eaaaebe11519d29d830fe2d7de10ce
1 ; RUN: llc < %s -mtriple=aarch64 -mattr=+mte | FileCheck %s
3 define ptr @irg_imm16(ptr %p) {
4 entry:
5 ; CHECK-LABEL: irg_imm16:
6 ; CHECK: mov w[[R:[0-9]+]], #16
7 ; CHECK: irg x0, x0, x[[R]]
8 ; CHECK: ret
9   %q = call ptr @llvm.aarch64.irg(ptr %p, i64 16)
10   ret ptr %q
13 define ptr @irg_imm0(ptr %p) {
14 entry:
15 ; CHECK-LABEL: irg_imm0:
16 ; CHECK: irg x0, x0{{$}}
17 ; CHECK: ret
18   %q = call ptr @llvm.aarch64.irg(ptr %p, i64 0)
19   ret ptr %q
22 define ptr @irg_reg(ptr %p, i64 %ex) {
23 entry:
24 ; CHECK-LABEL: irg_reg:
25 ; CHECK: irg x0, x0, x1
26 ; CHECK: ret
27   %q = call ptr @llvm.aarch64.irg(ptr %p, i64 %ex)
28   ret ptr %q
31 ; undef argument in irg is treated specially
32 define ptr @irg_sp() {
33 entry:
34 ; CHECK-LABEL: irg_sp:
35 ; CHECK: irg x0, sp{{$}}
36 ; CHECK: ret
37   %q = call ptr @llvm.aarch64.irg.sp(i64 0)
38   ret ptr %q
41 declare ptr @llvm.aarch64.irg(ptr %p, i64 %exclude)
42 declare ptr @llvm.aarch64.irg.sp(i64 %exclude)