package Ġdev . super gre cko . v exe . llvm . ir . instructions Ċ Ċ import Ġdev . super gre cko . v exe . llvm . internal . contracts . Un reachable Ċ import Ġdev . super gre cko . v exe . llvm . ir . Atomic Ordering Ċ import Ġdev . super gre cko . v exe . llvm . ir . Instruction Ċ import Ġdev . super gre cko . v exe . llvm . ir . instructions . traits . Atomic Ċ import Ġdev . super gre cko . v exe . llvm . ir . instructions . traits . Memory Accessor Ċ import Ġorg . byte deco . llvm . LLVM . LLVM Value Ref Ċ import Ġorg . byte deco . llvm . global . LLVM Ċ Ċ public Ġclass ĠAtomic Cmp X chg Instruction Ġinternal Ġconstructor () Ġ: ĠInstruction (), ĊĠĠĠ ĠMemory Accessor , ĠAtomic Ġ{ ĊĠĠĠ Ġpublic Ġconstructor ( llvm Ref : ĠLLVM Value Ref ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġref Ġ= Ġllvm Ref ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region ĠInstruction Builders ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġatomic Ġordering Ġupon Ġsuccess ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠLLVM . LLVM Set Cmp X chg Success Ordering ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġget Success Ordering (): ĠAtomic Ordering Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġordering Ġ= ĠLLVM . LLVM Get Cmp X chg Success Ordering ( ref ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic Ordering . values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . value Ġ== Ġordering Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠUn reachable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġatomic Ġordering Ġupon Ġsuccess ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠLLVM . LLVM Set Cmp X chg Success Ordering ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġset Success Ordering ( ordering : ĠAtomic Ordering ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLLVM . LLVM Set Cmp X chg Success Ordering ( ref , Ġordering . value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġatomic Ġordering Ġupon Ġfailure ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠLLVM . LLVM Get Cmp X chg Failure Ordering ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġget Failure Ordering (): ĠAtomic Ordering Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġordering Ġ= ĠLLVM . LLVM Get Cmp X chg Failure Ordering ( ref ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAtomic Ordering . values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . value Ġ== Ġordering Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠUn reachable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġatomic Ġordering Ġupon Ġfailure ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠLLVM . LLVM Set Cmp X chg Failure Ordering ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġset Failure Ordering ( ordering : ĠAtomic Ordering ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLLVM . LLVM Set Cmp X chg Failure Ordering ( ref , Ġordering . value ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion ĠInstruction Builders Ċ } Ċ