# RUN: llvm-mc -triple thumbv8.1m.main-arm-none-eabi -mattr=+pacbti -disassemble %s 2> /dev/null | FileCheck %s 0x51,0xfb,0x02,0x0f 0x5e,0xfb,0x0d,0xcf 0xaf,0xf3,0x2d,0x80 0x51,0xfb,0x12,0x0f 0xaf,0xf3,0x0f,0x80 0x61,0xfb,0x02,0xf0 0x6e,0xfb,0x0d,0xfc 0xaf,0xf3,0x1d,0x80 0xaf,0xf3,0x0d,0x80 0x80,0xf3,0x20,0x88 0x80,0xf3,0x21,0x88 0x80,0xf3,0x22,0x88 0x80,0xf3,0x23,0x88 0x80,0xf3,0x24,0x88 0x80,0xf3,0x25,0x88 0x80,0xf3,0x26,0x88 0x80,0xf3,0x27,0x88 0x80,0xf3,0xa0,0x88 0x80,0xf3,0xa1,0x88 0x80,0xf3,0xa2,0x88 0x80,0xf3,0xa3,0x88 0x80,0xf3,0xa4,0x88 0x80,0xf3,0xa5,0x88 0x80,0xf3,0xa6,0x88 0x80,0xf3,0xa7,0x88 0xef,0xf3,0x20,0x80 0xef,0xf3,0x21,0x80 0xef,0xf3,0x22,0x80 0xef,0xf3,0x23,0x80 0xef,0xf3,0x24,0x80 0xef,0xf3,0x25,0x80 0xef,0xf3,0x26,0x80 0xef,0xf3,0x27,0x80 0xef,0xf3,0xa0,0x80 0xef,0xf3,0xa1,0x80 0xef,0xf3,0xa2,0x80 0xef,0xf3,0xa3,0x80 0xef,0xf3,0xa4,0x80 0xef,0xf3,0xa5,0x80 0xef,0xf3,0xa6,0x80 0xef,0xf3,0xa7,0x80 # Test softfail encodings 0xa7,0xf3,0x1d,0x80 0xab,0xf3,0x1d,0x80 0xad,0xf3,0x1d,0x80 0xae,0xf3,0x1d,0x80 0xaf,0xf3,0x1d,0x88 0xaf,0xf3,0x1d,0xa0 0xaf,0xf3,0x2d,0x80 0xab,0xf3,0x2d,0x80 0xad,0xf3,0x2d,0x80 0xae,0xf3,0x2d,0x80 0xaf,0xf3,0x2d,0x88 0xaf,0xf3,0x2d,0xa0 0xa7,0xf3,0x0f,0x80 0xab,0xf3,0x0f,0x80 0xad,0xf3,0x0f,0x80 0xae,0xf3,0x0f,0x80 0xaf,0xf3,0x0f,0x88 0xaf,0xf3,0x0f,0xa0 0xa7,0xf3,0x0d,0x80 0xab,0xf3,0x0d,0x80 0xad,0xf3,0x0d,0x80 0xae,0xf3,0x0d,0x80 0xaf,0xf3,0x0d,0x88 0xaf,0xf3,0x0d,0xa0 # CHECK: autg r0, r1, r2 # CHECK: autg r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: bxaut r0, r1, r2 # CHECK: bti # CHECK: pacg r0, r1, r2 # CHECK: pacg r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: pacbti r12, lr, sp # CHECK: msr pac_key_p_0, r0 # CHECK: msr pac_key_p_1, r0 # CHECK: msr pac_key_p_2, r0 # CHECK: msr pac_key_p_3, r0 # CHECK: msr pac_key_u_0, r0 # CHECK: msr pac_key_u_1, r0 # CHECK: msr pac_key_u_2, r0 # CHECK: msr pac_key_u_3, r0 # CHECK: msr pac_key_p_0_ns, r0 # CHECK: msr pac_key_p_1_ns, r0 # CHECK: msr pac_key_p_2_ns, r0 # CHECK: msr pac_key_p_3_ns, r0 # CHECK: msr pac_key_u_0_ns, r0 # CHECK: msr pac_key_u_1_ns, r0 # CHECK: msr pac_key_u_2_ns, r0 # CHECK: msr pac_key_u_3_ns, r0 # CHECK: mrs r0, pac_key_p_0 # CHECK: mrs r0, pac_key_p_1 # CHECK: mrs r0, pac_key_p_2 # CHECK: mrs r0, pac_key_p_3 # CHECK: mrs r0, pac_key_u_0 # CHECK: mrs r0, pac_key_u_1 # CHECK: mrs r0, pac_key_u_2 # CHECK: mrs r0, pac_key_u_3 # CHECK: mrs r0, pac_key_p_0_ns # CHECK: mrs r0, pac_key_p_1_ns # CHECK: mrs r0, pac_key_p_2_ns # CHECK: mrs r0, pac_key_p_3_ns # CHECK: mrs r0, pac_key_u_0_ns # CHECK: mrs r0, pac_key_u_1_ns # CHECK: mrs r0, pac_key_u_2_ns # CHECK: mrs r0, pac_key_u_3_ns # Softfail encodings # CHECK: pac r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: pac r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: aut r12, lr, sp # CHECK: bti # CHECK: bti # CHECK: bti # CHECK: bti # CHECK: bti # CHECK: bti # CHECK: pacbti r12, lr, sp # CHECK: pacbti r12, lr, sp # CHECK: pacbti r12, lr, sp # CHECK: pacbti r12, lr, sp # CHECK: pacbti r12, lr, sp # CHECK: pacbti r12, lr, sp