1; RUN: llc < %s -mtriple=ve | FileCheck %s 2 3;;; Test atomic fence for all memory order 4 5; Function Attrs: norecurse nounwind readnone 6define void @_Z20atomic_fence_relaxedv() { 7; CHECK-LABEL: _Z20atomic_fence_relaxedv: 8; CHECK: # %bb.0: 9; CHECK-NEXT: b.l.t (, %s10) 10 ret void 11} 12 13; Function Attrs: nofree norecurse nounwind 14define void @_Z20atomic_fence_consumev() { 15; CHECK-LABEL: _Z20atomic_fence_consumev: 16; CHECK: # %bb.0: 17; CHECK-NEXT: fencem 2 18; CHECK-NEXT: b.l.t (, %s10) 19 fence acquire 20 ret void 21} 22 23; Function Attrs: nofree norecurse nounwind 24define void @_Z20atomic_fence_acquirev() { 25; CHECK-LABEL: _Z20atomic_fence_acquirev: 26; CHECK: # %bb.0: 27; CHECK-NEXT: fencem 2 28; CHECK-NEXT: b.l.t (, %s10) 29 fence acquire 30 ret void 31} 32 33; Function Attrs: nofree norecurse nounwind 34define void @_Z20atomic_fence_releasev() { 35; CHECK-LABEL: _Z20atomic_fence_releasev: 36; CHECK: # %bb.0: 37; CHECK-NEXT: fencem 1 38; CHECK-NEXT: b.l.t (, %s10) 39 fence release 40 ret void 41} 42 43; Function Attrs: nofree norecurse nounwind 44define void @_Z20atomic_fence_acq_relv() { 45; CHECK-LABEL: _Z20atomic_fence_acq_relv: 46; CHECK: # %bb.0: 47; CHECK-NEXT: fencem 3 48; CHECK-NEXT: b.l.t (, %s10) 49 fence acq_rel 50 ret void 51} 52 53; Function Attrs: nofree norecurse nounwind 54define void @_Z20atomic_fence_seq_cstv() { 55; CHECK-LABEL: _Z20atomic_fence_seq_cstv: 56; CHECK: # %bb.0: 57; CHECK-NEXT: fencem 3 58; CHECK-NEXT: b.l.t (, %s10) 59 fence seq_cst 60 ret void 61} 62