brintos

brintos / llvm-project-archived public Read only

0
0
Text · 900 B · a5a454f Raw
43 lines · plain
1; RUN: llc < %s -mtriple=aarch64 -mattr=+mte | FileCheck %s2 3define ptr @irg_imm16(ptr %p) {4entry:5; CHECK-LABEL: irg_imm16:6; CHECK: mov w[[R:[0-9]+]], #167; CHECK: irg x0, x0, x[[R]]8; CHECK: ret9  %q = call ptr @llvm.aarch64.irg(ptr %p, i64 16)10  ret ptr %q11}12 13define ptr @irg_imm0(ptr %p) {14entry:15; CHECK-LABEL: irg_imm0:16; CHECK: irg x0, x0{{$}}17; CHECK: ret18  %q = call ptr @llvm.aarch64.irg(ptr %p, i64 0)19  ret ptr %q20}21 22define ptr @irg_reg(ptr %p, i64 %ex) {23entry:24; CHECK-LABEL: irg_reg:25; CHECK: irg x0, x0, x126; CHECK: ret27  %q = call ptr @llvm.aarch64.irg(ptr %p, i64 %ex)28  ret ptr %q29}30 31; undef argument in irg is treated specially32define ptr @irg_sp() {33entry:34; CHECK-LABEL: irg_sp:35; CHECK: irg x0, sp{{$}}36; CHECK: ret37  %q = call ptr @llvm.aarch64.irg.sp(i64 0)38  ret ptr %q39}40 41declare ptr @llvm.aarch64.irg(ptr %p, i64 %exclude)42declare ptr @llvm.aarch64.irg.sp(i64 %exclude)43