48 lines
2.5 KiB
LLVM
48 lines
2.5 KiB
LLVM
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --filter "^\s*(dmb)"
|
||
|
; The base test file was generated by ./llvm/test/CodeGen/AArch64/Atomics/generate-tests.py
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8a -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8a -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8.1a -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+v8.1a -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+rcpc -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+rcpc -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2 -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2 -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+outline-atomics -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+outline-atomics -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+rcpc3 -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+rcpc3 -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+lse128 -O0 | FileCheck %s --check-prefixes=CHECK,-O0
|
||
|
; RUN: llc %s -o - -verify-machineinstrs -mtriple=aarch64 -mattr=+lse2,+lse128 -O1 | FileCheck %s --check-prefixes=CHECK,-O1
|
||
|
|
||
|
define dso_local void @fence_acquire() {
|
||
|
; CHECK-LABEL: fence_acquire:
|
||
|
; CHECK: dmb ishld
|
||
|
fence acquire
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
define dso_local void @fence_release() {
|
||
|
; CHECK-LABEL: fence_release:
|
||
|
; CHECK: dmb ish
|
||
|
fence release
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
define dso_local void @fence_acq_rel() {
|
||
|
; CHECK-LABEL: fence_acq_rel:
|
||
|
; CHECK: dmb ish
|
||
|
fence acq_rel
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
define dso_local void @fence_seq_cst() {
|
||
|
; CHECK-LABEL: fence_seq_cst:
|
||
|
; CHECK: dmb ish
|
||
|
fence seq_cst
|
||
|
ret void
|
||
|
}
|
||
|
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
|
||
|
; -O0: {{.*}}
|
||
|
; -O1: {{.*}}
|