xref: /llvm-project/llvm/test/CodeGen/AArch64/ptrauth-pseudo-instructions.mir (revision 08fccf80949c649e2c4c81bf9149fd77206002c4)
1# RUN: llc -mtriple=aarch64--- -run-pass=aarch64-ptrauth -verify-machineinstrs %s -o - | FileCheck %s
2
3# Test the corner cases that cannot be reliably tested using LLVM IR as input.
4
5--- |
6  define i64 @blend_untied(i64 %unused, i64 %ptr_arg) {
7    ret i64 0
8  }
9...
10---
11# Check that the input register is copied to the output one, if not tied.
12
13name:            blend_untied
14tracksRegLiveness: true
15body:             |
16  bb.0:
17  liveins: $lr, $x0, $x1
18    $x0 = PAUTH_BLEND $x1, 42
19    RET undef $lr
20
21# CHECK:       liveins: $lr, $x0, $x1
22# CHECK-NEXT:    {{^ +$}}
23# CHECK-NEXT:    $x0 = ORRXrs $xzr, $x1, 0
24# CHECK-NEXT:    $x0 = MOVKXi $x0, 42, 48
25# CHECK-NEXT:    RET undef $lr
26
27...
28