1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=csky -verify-machineinstrs -csky-no-aliases -mattr=+2e3 < %s \ 3; RUN: | FileCheck -check-prefix=CSKY %s 4 5define i1 @cmpxchg_i32_seq_cst_seq_cst(ptr %ptr, i32 signext %cmp, 6 i32 signext %val) nounwind { 7; CSKY-LABEL: cmpxchg_i32_seq_cst_seq_cst: 8; CSKY: # %bb.0: # %entry 9; CSKY-NEXT: subi16 sp, sp, 4 10; CSKY-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill 11; CSKY-NEXT: subi16 sp, sp, 8 12; CSKY-NEXT: st16.w a1, (sp, 4) 13; CSKY-NEXT: movi16 a1, 5 14; CSKY-NEXT: st16.w a1, (sp, 0) 15; CSKY-NEXT: addi16 a1, sp, 4 16; CSKY-NEXT: movi16 a3, 5 17; CSKY-NEXT: jsri32 [.LCPI0_0] 18; CSKY-NEXT: addi16 sp, sp, 8 19; CSKY-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload 20; CSKY-NEXT: addi16 sp, sp, 4 21; CSKY-NEXT: rts16 22; CSKY-NEXT: .p2align 1 23; CSKY-NEXT: # %bb.1: 24; CSKY-NEXT: .p2align 2 25; CSKY-NEXT: .LCPI0_0: 26; CSKY-NEXT: .long __atomic_compare_exchange_4 27; 28entry: 29 %0 = cmpxchg ptr %ptr, i32 %cmp, i32 %val seq_cst seq_cst 30 %1 = extractvalue { i32, i1 } %0, 1 31 ret i1 %1 32} 33