1 ; RUN: llc < %s -mtriple=aarch64 -mattr=+mte | FileCheck %s
3 define i8* @irg_imm16(i8* %p) {
5 ; CHECK-LABEL: irg_imm16:
6 ; CHECK: mov w[[R:[0-9]+]], #16
7 ; CHECK: irg x0, x0, x[[R]]
9 %q = call i8* @llvm.aarch64.irg(i8* %p, i64 16)
13 define i8* @irg_imm0(i8* %p) {
15 ; CHECK-LABEL: irg_imm0:
16 ; CHECK: irg x0, x0{{$}}
18 %q = call i8* @llvm.aarch64.irg(i8* %p, i64 0)
22 define i8* @irg_reg(i8* %p, i64 %ex) {
24 ; CHECK-LABEL: irg_reg:
25 ; CHECK: irg x0, x0, x1
27 %q = call i8* @llvm.aarch64.irg(i8* %p, i64 %ex)
31 ; undef argument in irg is treated specially
32 define i8* @irg_sp() {
34 ; CHECK-LABEL: irg_sp:
35 ; CHECK: irg x0, sp{{$}}
37 %q = call i8* @llvm.aarch64.irg.sp(i64 0)
41 declare i8* @llvm.aarch64.irg(i8* %p, i64 %exclude)
42 declare i8* @llvm.aarch64.irg.sp(i64 %exclude)