# RUN: llvm-mc -triple=aarch64 -mattr=+all -disassemble -show-encoding < %s 2>&1 | FileCheck --check-prefix=WARN %s
# RUN: llvm-mc -triple=aarch64 -mattr=+all -disassemble -show-encoding < %s 2>/dev/null | FileCheck --check-prefix=DIS %s

# Fill in the "unpredictable" bits (should-be-one or should-be-zero to
# avoid "constrained unpredictable" according to the Arm ARM) with these
# bit patterns in the hex encodings below:
#
#   field(s)    pattern
#   {20-16}     0b10110
#   {16-12}     0b10110
#   {14-10}     0b10110
#   {11-8}      0b0101
#   {15-14}     0b10
#
# This verifies every Unpredictable encoding soft-fails for non-canonical
# values without relying on all-zero or all-one test cases.

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xc0,0xb6,0x38]
# WARN-NEXT:  ^
# ldaprb w0, [x1]
[0x20,0xc0,0xb6,0x38]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xc0,0xb6,0x78]
# WARN-NEXT:  ^
# ldaprh w0, [x1]
[0x20,0xc0,0xb6,0x78]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xc0,0xb6,0xb8]
# WARN-NEXT:  ^
# ldapr w0, [x1]
[0x20,0xc0,0xb6,0xb8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xc0,0xb6,0xf8]
# WARN-NEXT:  ^
# ldapr x0, [x1]
[0x20,0xc0,0xb6,0xf8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x41,0x58,0x43,0x9b]
# WARN-NEXT:  ^
# smulh x1, x2, x3
[0x41,0x58,0x43,0x9b]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x41,0x58,0xc3,0x9b]
# WARN-NEXT:  ^
# umulh x1, x2, x3
[0x41,0x58,0xc3,0x9b]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x84,0x80,0x91]
# WARN-NEXT:  ^
# addg x0, x1, #0, #1
[0x20,0x84,0x80,0x91]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x84,0x80,0xd1]
# WARN-NEXT:  ^
# subg x0, x1, #0, #1
[0x20,0x84,0x80,0xd1]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0xd6,0x08]
# WARN-NEXT:  ^
# ldarb w0, [x1]
[0x20,0xd8,0xd6,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0xd6,0x48]
# WARN-NEXT:  ^
# ldarh w0, [x1]
[0x20,0xd8,0xd6,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0xd6,0x88]
# WARN-NEXT:  ^
# ldar w0, [x1]
[0x20,0xd8,0xd6,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0xd6,0xc8]
# WARN-NEXT:  ^
# ldar x0, [x1]
[0x20,0xd8,0xd6,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0xd6,0x08]
# WARN-NEXT:  ^
# ldlarb w0, [x1]
[0x20,0x58,0xd6,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0xd6,0x48]
# WARN-NEXT:  ^
# ldlarh w0, [x1]
[0x20,0x58,0xd6,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0xd6,0x88]
# WARN-NEXT:  ^
# ldlar w0, [x1]
[0x20,0x58,0xd6,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0xd6,0xc8]
# WARN-NEXT:  ^
# ldlar x0, [x1]
[0x20,0x58,0xd6,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0x08]
# WARN-NEXT:  ^
# ldaxrb w0, [x1]
[0x20,0xd8,0x56,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0x48]
# WARN-NEXT:  ^
# ldaxrh w0, [x1]
[0x20,0xd8,0x56,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0x88]
# WARN-NEXT:  ^
# ldaxr w0, [x1]
[0x20,0xd8,0x56,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0xc8]
# WARN-NEXT:  ^
# ldaxr x0, [x1]
[0x20,0xd8,0x56,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0x08]
# WARN-NEXT:  ^
# ldxrb w0, [x1]
[0x20,0x58,0x56,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0x48]
# WARN-NEXT:  ^
# ldxrh w0, [x1]
[0x20,0x58,0x56,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0x88]
# WARN-NEXT:  ^
# ldxr w0, [x1]
[0x20,0x58,0x56,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0xc8]
# WARN-NEXT:  ^
# ldxr x0, [x1]
[0x20,0x58,0x56,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x96,0x08]
# WARN-NEXT:  ^
# stlrb w0, [x1]
[0x20,0xd8,0x96,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x96,0x48]
# WARN-NEXT:  ^
# stlrh w0, [x1]
[0x20,0xd8,0x96,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x96,0x88]
# WARN-NEXT:  ^
# stlr w0, [x1]
[0x20,0xd8,0x96,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x96,0xc8]
# WARN-NEXT:  ^
# stlr x0, [x1]
[0x20,0xd8,0x96,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x96,0x08]
# WARN-NEXT:  ^
# stllrb w0, [x1]
[0x20,0x58,0x96,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x96,0x48]
# WARN-NEXT:  ^
# stllrh w0, [x1]
[0x20,0x58,0x96,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x96,0x88]
# WARN-NEXT:  ^
# stllr w0, [x1]
[0x20,0x58,0x96,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x96,0xc8]
# WARN-NEXT:  ^
# stllr x0, [x1]
[0x20,0x58,0x96,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x88,0x76,0x88]
# WARN-NEXT:  ^
# ldaxp w0, w2, [x1]
[0x20,0x88,0x76,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x88,0x76,0xc8]
# WARN-NEXT:  ^
# ldaxp x0, x2, [x1]
[0x20,0x88,0x76,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x08,0x76,0x88]
# WARN-NEXT:  ^
# ldxp w0, w2, [x1]
[0x20,0x08,0x76,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x08,0x76,0xc8]
# WARN-NEXT:  ^
# ldxp x0, x2, [x1]
[0x20,0x08,0x76,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0x89]
# WARN-NEXT:  ^
# ldtxr w0, [x1]
[0x20,0x58,0x56,0x89]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x56,0xc9]
# WARN-NEXT:  ^
# ldtxr x0, [x1]
[0x20,0x58,0x56,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0x89]
# WARN-NEXT:  ^
# ldatxr w0, [x1]
[0x20,0xd8,0x56,0x89]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x56,0xc9]
# WARN-NEXT:  ^
# ldatxr x0, [x1]
[0x20,0xd8,0x56,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0x89]
# WARN-NEXT:  ^
# sttxr w2, w0, [x1]
[0x20,0x58,0x02,0x89]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0xc9]
# WARN-NEXT:  ^
# sttxr w2, x0, [x1]
[0x20,0x58,0x02,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0x89]
# WARN-NEXT:  ^
# stltxr w2, w0, [x1]
[0x20,0xd8,0x02,0x89]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0xc9]
# WARN-NEXT:  ^
# stltxr w2, x0, [x1]
[0x20,0xd8,0x02,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0x08]
# WARN-NEXT:  ^
# stlxrb w2, w0, [x1]
[0x20,0xd8,0x02,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0x48]
# WARN-NEXT:  ^
# stlxrh w2, w0, [x1]
[0x20,0xd8,0x02,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0x88]
# WARN-NEXT:  ^
# stlxr w2, w0, [x1]
[0x20,0xd8,0x02,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0xd8,0x02,0xc8]
# WARN-NEXT:  ^
# stlxr w2, x0, [x1]
[0x20,0xd8,0x02,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0x08]
# WARN-NEXT:  ^
# stxrb w2, w0, [x1]
[0x20,0x58,0x02,0x08]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0x48]
# WARN-NEXT:  ^
# stxrh w2, w0, [x1]
[0x20,0x58,0x02,0x48]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0x88]
# WARN-NEXT:  ^
# stxr w2, w0, [x1]
[0x20,0x58,0x02,0x88]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x20,0x58,0x02,0xc8]
# WARN-NEXT:  ^
# stxr w2, x0, [x1]
[0x20,0x58,0x02,0xc8]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x1f,0x45,0x00,0xd5]
# WARN-NEXT:  ^
# cfinv
[0x1f,0x45,0x00,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x3f,0x45,0x00,0xd5]
# WARN-NEXT:  ^
# xaflag
[0x3f,0x45,0x00,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x5f,0x45,0x00,0xd5]
# WARN-NEXT:  ^
# axflag
[0x5f,0x45,0x00,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0xff,0x35,0x03,0xd5]
# WARN-NEXT:  ^
# sb
[0xff,0x35,0x03,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x22,0x58,0x80,0xc9]
# WARN-NEXT:  ^
# cast x0, x2, [x1]
[0x22,0x58,0x80,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x22,0xd8,0x80,0xc9]
# WARN-NEXT:  ^
# caslt x0, x2, [x1]
[0x22,0xd8,0x80,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x22,0x58,0xc0,0xc9]
# WARN-NEXT:  ^
# casat x0, x2, [x1]
[0x22,0x58,0xc0,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x22,0xd8,0xc0,0xc9]
# WARN-NEXT:  ^
# casalt x0, x2, [x1]
[0x22,0xd8,0xc0,0xc9]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x00,0xd6,0x1d]
# WARN-NEXT:  ^
# setgop [x3]!, x2!
[0x43,0x00,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x40,0xd6,0x1d]
# WARN-NEXT:  ^
# setgom [x3]!, x2!
[0x43,0x40,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x80,0xd6,0x1d]
# WARN-NEXT:  ^
# setgoe [x3]!, x2!
[0x43,0x80,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x20,0xd6,0x1d]
# WARN-NEXT:  ^
# setgopn [x3]!, x2!
[0x43,0x20,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x60,0xd6,0x1d]
# WARN-NEXT:  ^
# setgomn [x3]!, x2!
[0x43,0x60,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0xa0,0xd6,0x1d]
# WARN-NEXT:  ^
# setgoen [x3]!, x2!
[0x43,0xa0,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x10,0xd6,0x1d]
# WARN-NEXT:  ^
# setgopt [x3]!, x2!
[0x43,0x10,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x50,0xd6,0x1d]
# WARN-NEXT:  ^
# setgomt [x3]!, x2!
[0x43,0x50,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x90,0xd6,0x1d]
# WARN-NEXT:  ^
# setgoet [x3]!, x2!
[0x43,0x90,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x30,0xd6,0x1d]
# WARN-NEXT:  ^
# setgoptn [x3]!, x2!
[0x43,0x30,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0x70,0xd6,0x1d]
# WARN-NEXT:  ^
# setgomtn [x3]!, x2!
[0x43,0x70,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x43,0xb0,0xd6,0x1d]
# WARN-NEXT:  ^
# setgoetn [x3]!, x2!
[0x43,0xb0,0xd6,0x1d]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x21,0x61,0x95,0xd5]
# WARN-NEXT:  ^
# tchangeb x1, #9
[0x21,0x61,0x95,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x21,0x61,0x97,0xd5]
# WARN-NEXT:  ^
# tchangeb x1, #9, nb
[0x21,0x61,0x97,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x61,0x60,0x91,0xd5]
# WARN-NEXT:  ^
# tchangef x1, #3
[0x61,0x60,0x91,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x61,0x60,0x93,0xd5]
# WARN-NEXT:  ^
# tchangef x1, #3, nb
[0x61,0x60,0x93,0xd5]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x00,0x64,0xe1,0xd4]
# WARN-NEXT:  ^
# tenter #32
[0x00,0x64,0xe1,0xd4]

# WARN: warning: potentially undefined instruction encoding
# WARN-NEXT: [0x00,0x64,0xe3,0xd4]
# WARN-NEXT:  ^
# tenter #32, nb
[0x00,0x64,0xe3,0xd4]

# DIS-DAG: ldaprb w0, [x1] // encoding: [0x20,0xc0,0xbf,0x38]
# DIS-DAG: ldaprh w0, [x1] // encoding: [0x20,0xc0,0xbf,0x78]
# DIS-DAG: ldapr w0, [x1] // encoding: [0x20,0xc0,0xbf,0xb8]
# DIS-DAG: ldapr x0, [x1] // encoding: [0x20,0xc0,0xbf,0xf8]
# DIS-DAG: smulh x1, x2, x3 // encoding: [0x41,0x7c,0x43,0x9b]
# DIS-DAG: umulh x1, x2, x3 // encoding: [0x41,0x7c,0xc3,0x9b]
# DIS-DAG: addg x0, x1, #0, #1 // encoding: [0x20,0x04,0x80,0x91]
# DIS-DAG: subg x0, x1, #0, #1 // encoding: [0x20,0x04,0x80,0xd1]
# DIS-DAG: ldarb w0, [x1] // encoding: [0x20,0xfc,0xdf,0x08]
# DIS-DAG: ldarh w0, [x1] // encoding: [0x20,0xfc,0xdf,0x48]
# DIS-DAG: ldar w0, [x1] // encoding: [0x20,0xfc,0xdf,0x88]
# DIS-DAG: ldar x0, [x1] // encoding: [0x20,0xfc,0xdf,0xc8]
# DIS-DAG: ldlarb w0, [x1] // encoding: [0x20,0x7c,0xdf,0x08]
# DIS-DAG: ldlarh w0, [x1] // encoding: [0x20,0x7c,0xdf,0x48]
# DIS-DAG: ldlar w0, [x1] // encoding: [0x20,0x7c,0xdf,0x88]
# DIS-DAG: ldlar x0, [x1] // encoding: [0x20,0x7c,0xdf,0xc8]
# DIS-DAG: ldaxrb w0, [x1] // encoding: [0x20,0xfc,0x5f,0x08]
# DIS-DAG: ldaxrh w0, [x1] // encoding: [0x20,0xfc,0x5f,0x48]
# DIS-DAG: ldaxr w0, [x1] // encoding: [0x20,0xfc,0x5f,0x88]
# DIS-DAG: ldaxr x0, [x1] // encoding: [0x20,0xfc,0x5f,0xc8]
# DIS-DAG: ldxrb w0, [x1] // encoding: [0x20,0x7c,0x5f,0x08]
# DIS-DAG: ldxrh w0, [x1] // encoding: [0x20,0x7c,0x5f,0x48]
# DIS-DAG: ldxr w0, [x1] // encoding: [0x20,0x7c,0x5f,0x88]
# DIS-DAG: ldxr x0, [x1] // encoding: [0x20,0x7c,0x5f,0xc8]
# DIS-DAG: stlrb w0, [x1] // encoding: [0x20,0xfc,0x9f,0x08]
# DIS-DAG: stlrh w0, [x1] // encoding: [0x20,0xfc,0x9f,0x48]
# DIS-DAG: stlr w0, [x1] // encoding: [0x20,0xfc,0x9f,0x88]
# DIS-DAG: stlr x0, [x1] // encoding: [0x20,0xfc,0x9f,0xc8]
# DIS-DAG: stllrb w0, [x1] // encoding: [0x20,0x7c,0x9f,0x08]
# DIS-DAG: stllrh w0, [x1] // encoding: [0x20,0x7c,0x9f,0x48]
# DIS-DAG: stllr w0, [x1] // encoding: [0x20,0x7c,0x9f,0x88]
# DIS-DAG: stllr x0, [x1] // encoding: [0x20,0x7c,0x9f,0xc8]
# DIS-DAG: ldaxp w0, w2, [x1] // encoding: [0x20,0x88,0x7f,0x88]
# DIS-DAG: ldaxp x0, x2, [x1] // encoding: [0x20,0x88,0x7f,0xc8]
# DIS-DAG: ldxp w0, w2, [x1] // encoding: [0x20,0x08,0x7f,0x88]
# DIS-DAG: ldxp x0, x2, [x1] // encoding: [0x20,0x08,0x7f,0xc8]
# DIS-DAG: ldtxr w0, [x1] // encoding: [0x20,0x7c,0x5f,0x89]
# DIS-DAG: ldtxr x0, [x1] // encoding: [0x20,0x7c,0x5f,0xc9]
# DIS-DAG: ldatxr w0, [x1] // encoding: [0x20,0xfc,0x5f,0x89]
# DIS-DAG: ldatxr x0, [x1] // encoding: [0x20,0xfc,0x5f,0xc9]
# DIS-DAG: sttxr w2, w0, [x1] // encoding: [0x20,0x7c,0x02,0x89]
# DIS-DAG: sttxr w2, x0, [x1] // encoding: [0x20,0x7c,0x02,0xc9]
# DIS-DAG: stltxr w2, w0, [x1] // encoding: [0x20,0xfc,0x02,0x89]
# DIS-DAG: stltxr w2, x0, [x1] // encoding: [0x20,0xfc,0x02,0xc9]
# DIS-DAG: stlxrb w2, w0, [x1] // encoding: [0x20,0xfc,0x02,0x08]
# DIS-DAG: stlxrh w2, w0, [x1] // encoding: [0x20,0xfc,0x02,0x48]
# DIS-DAG: stlxr w2, w0, [x1] // encoding: [0x20,0xfc,0x02,0x88]
# DIS-DAG: stlxr w2, x0, [x1] // encoding: [0x20,0xfc,0x02,0xc8]
# DIS-DAG: stxrb w2, w0, [x1] // encoding: [0x20,0x7c,0x02,0x08]
# DIS-DAG: stxrh w2, w0, [x1] // encoding: [0x20,0x7c,0x02,0x48]
# DIS-DAG: stxr w2, w0, [x1] // encoding: [0x20,0x7c,0x02,0x88]
# DIS-DAG: stxr w2, x0, [x1] // encoding: [0x20,0x7c,0x02,0xc8]
# DIS-DAG: cfinv // encoding: [0x1f,0x40,0x00,0xd5]
# DIS-DAG: xaflag // encoding: [0x3f,0x40,0x00,0xd5]
# DIS-DAG: axflag // encoding: [0x5f,0x40,0x00,0xd5]
# DIS-DAG: sb // encoding: [0xff,0x30,0x03,0xd5]
# DIS-DAG: cast x0, x2, [x1] // encoding: [0x22,0x7c,0x80,0xc9]
# DIS-DAG: caslt x0, x2, [x1] // encoding: [0x22,0xfc,0x80,0xc9]
# DIS-DAG: casat x0, x2, [x1] // encoding: [0x22,0x7c,0xc0,0xc9]
# DIS-DAG: casalt x0, x2, [x1] // encoding: [0x22,0xfc,0xc0,0xc9]
# DIS-DAG: setgop [x3]!, x2! // encoding: [0x43,0x00,0xdf,0x1d]
# DIS-DAG: setgom [x3]!, x2! // encoding: [0x43,0x40,0xdf,0x1d]
# DIS-DAG: setgoe [x3]!, x2! // encoding: [0x43,0x80,0xdf,0x1d]
# DIS-DAG: setgopn [x3]!, x2! // encoding: [0x43,0x20,0xdf,0x1d]
# DIS-DAG: setgomn [x3]!, x2! // encoding: [0x43,0x60,0xdf,0x1d]
# DIS-DAG: setgoen [x3]!, x2! // encoding: [0x43,0xa0,0xdf,0x1d]
# DIS-DAG: setgopt [x3]!, x2! // encoding: [0x43,0x10,0xdf,0x1d]
# DIS-DAG: setgomt [x3]!, x2! // encoding: [0x43,0x50,0xdf,0x1d]
# DIS-DAG: setgoet [x3]!, x2! // encoding: [0x43,0x90,0xdf,0x1d]
# DIS-DAG: setgoptn [x3]!, x2! // encoding: [0x43,0x30,0xdf,0x1d]
# DIS-DAG: setgomtn [x3]!, x2! // encoding: [0x43,0x70,0xdf,0x1d]
# DIS-DAG: setgoetn [x3]!, x2! // encoding: [0x43,0xb0,0xdf,0x1d]
# DIS-DAG: tchangeb x1, #9 // encoding: [0x21,0x01,0x94,0xd5]
# DIS-DAG: tchangeb x1, #9, nb // encoding: [0x21,0x01,0x96,0xd5]
# DIS-DAG: tchangef x1, #3 // encoding: [0x61,0x00,0x90,0xd5]
# DIS-DAG: tchangef x1, #3, nb // encoding: [0x61,0x00,0x92,0xd5]
# DIS-DAG: tenter #32 // encoding: [0x00,0x04,0xe0,0xd4]
# DIS-DAG: tenter #32, nb // encoding: [0x00,0x04,0xe2,0xd4]
