| ; 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] |