; RUN: llvm-mc -triple aarch64-apple-ios -mattr=+lse %s | FileCheck %s | |
; CHECK: ldaddab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldaddah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldadda w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldadda x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldaddab w3, wzr, [x5] | |
ldaddah w5, wzr, [x0] | |
ldadda w7, wzr, [x5] | |
ldadda x9, xzr, [sp] | |
; CHECK: ldaddalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldaddalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldaddal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldaddal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldaddalb w3, wzr, [x5] | |
ldaddalh w5, wzr, [x0] | |
ldaddal w7, wzr, [x5] | |
ldaddal x9, xzr, [sp] | |
; CHECK: ldclrab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclrah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclra w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclra x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldclrab w3, wzr, [x5] | |
ldclrah w5, wzr, [x0] | |
ldclra w7, wzr, [x5] | |
ldclra x9, xzr, [sp] | |
; CHECK: ldclralb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclralh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclral w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldclral x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldclralb w3, wzr, [x5] | |
ldclralh w5, wzr, [x0] | |
ldclral w7, wzr, [x5] | |
ldclral x9, xzr, [sp] | |
; CHECK: ldeorab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeorah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeora w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeora x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldeorab w3, wzr, [x5] | |
ldeorah w5, wzr, [x0] | |
ldeora w7, wzr, [x5] | |
ldeora x9, xzr, [sp] | |
; CHECK: ldeoralb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeoralh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeoral w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldeoral x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldeoralb w3, wzr, [x5] | |
ldeoralh w5, wzr, [x0] | |
ldeoral w7, wzr, [x5] | |
ldeoral x9, xzr, [sp] | |
; CHECK: ldsetab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsetah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldseta w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldseta x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsetab w3, wzr, [x5] | |
ldsetah w5, wzr, [x0] | |
ldseta w7, wzr, [x5] | |
ldseta x9, xzr, [sp] | |
; CHECK: ldsetalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsetalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsetal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsetal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsetalb w3, wzr, [x5] | |
ldsetalh w5, wzr, [x0] | |
ldsetal w7, wzr, [x5] | |
ldsetal x9, xzr, [sp] | |
; CHECK: ldsmaxab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxa w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxa x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsmaxab w3, wzr, [x5] | |
ldsmaxah w5, wzr, [x0] | |
ldsmaxa w7, wzr, [x5] | |
ldsmaxa x9, xzr, [sp] | |
; CHECK: ldsmaxalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmaxal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsmaxalb w3, wzr, [x5] | |
ldsmaxalh w5, wzr, [x0] | |
ldsmaxal w7, wzr, [x5] | |
ldsmaxal x9, xzr, [sp] | |
; CHECK: ldsminab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsminah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmina w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsmina x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsminab w3, wzr, [x5] | |
ldsminah w5, wzr, [x0] | |
ldsmina w7, wzr, [x5] | |
ldsmina x9, xzr, [sp] | |
; CHECK: ldsminalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsminalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsminal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldsminal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldsminalb w3, wzr, [x5] | |
ldsminalh w5, wzr, [x0] | |
ldsminal w7, wzr, [x5] | |
ldsminal x9, xzr, [sp] | |
; CHECK: ldumaxab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxa w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxa x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldumaxab w3, wzr, [x5] | |
ldumaxah w5, wzr, [x0] | |
ldumaxa w7, wzr, [x5] | |
ldumaxa x9, xzr, [sp] | |
; CHECK: ldumaxalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumaxal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
ldumaxalb w3, wzr, [x5] | |
ldumaxalh w5, wzr, [x0] | |
ldumaxal w7, wzr, [x5] | |
ldumaxal x9, xzr, [sp] | |
; CHECK: lduminab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: lduminah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumina w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: ldumina x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
lduminab w3, wzr, [x5] | |
lduminah w5, wzr, [x0] | |
ldumina w7, wzr, [x5] | |
ldumina x9, xzr, [sp] | |
; CHECK: lduminalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: lduminalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: lduminal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: lduminal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
lduminalb w3, wzr, [x5] | |
lduminalh w5, wzr, [x0] | |
lduminal w7, wzr, [x5] | |
lduminal x9, xzr, [sp] | |
; CHECK: swpab w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: swpah w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: swpa w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: swpa x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
swpab w3, wzr, [x5] | |
swpah w5, wzr, [x0] | |
swpa w7, wzr, [x5] | |
swpa x9, xzr, [sp] | |
; CHECK: swpalb w3, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: swpalh w5, wzr, [x0] ; acquire semantics dropped since destination is zero | |
; CHECK: swpal w7, wzr, [x5] ; acquire semantics dropped since destination is zero | |
; CHECK: swpal x9, xzr, [sp] ; acquire semantics dropped since destination is zero | |
swpalb w3, wzr, [x5] | |
swpalh w5, wzr, [x0] | |
swpal w7, wzr, [x5] | |
swpal x9, xzr, [sp] | |
; CHECK: ldaddal xzr, x3, [x0]{{$}} | |
; CHECK: ldeora wzr, w7, [x5]{{$}} | |
; CHECK: ldsminb w5, w9, [sp]{{$}} | |
ldaddal xzr, x3, [x0] | |
ldeora wzr, w7, [x5] | |
ldsminb w5, w9, [sp] | |
; CAS instructions aren't affected. | |
; CHECK: casab w3, wzr, [x5]{{$}} | |
; CHECK: casah w5, wzr, [x0]{{$}} | |
; CHECK: casa w7, wzr, [x5]{{$}} | |
; CHECK: casa x9, xzr, [sp]{{$}} | |
casab w3, wzr, [x5] | |
casah w5, wzr, [x0] | |
casa w7, wzr, [x5] | |
casa x9, xzr, [sp] | |
; CHECK: casalb w3, wzr, [x5]{{$}} | |
; CHECK: casalh w5, wzr, [x0]{{$}} | |
; CHECK: casal w7, wzr, [x5]{{$}} | |
; CHECK: casal x9, xzr, [sp]{{$}} | |
casalb w3, wzr, [x5] | |
casalh w5, wzr, [x0] | |
casal w7, wzr, [x5] | |
casal x9, xzr, [sp] |