forked from OSchip/llvm-project
48 lines
1.0 KiB
LLVM
48 lines
1.0 KiB
LLVM
; RUN: opt -instcombine -S %s | FileCheck %s
|
|
|
|
; Make sure we collapse the fences in this case
|
|
|
|
; CHECK-LABEL: define void @tinkywinky
|
|
; CHECK-NEXT: fence seq_cst
|
|
; CHECK-NEXT: fence syncscope("singlethread") acquire
|
|
; CHECK-NEXT: ret void
|
|
; CHECK-NEXT: }
|
|
|
|
define void @tinkywinky() {
|
|
fence seq_cst
|
|
fence seq_cst
|
|
fence seq_cst
|
|
fence syncscope("singlethread") acquire
|
|
fence syncscope("singlethread") acquire
|
|
fence syncscope("singlethread") acquire
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: define void @dipsy
|
|
; CHECK-NEXT: fence seq_cst
|
|
; CHECK-NEXT: fence syncscope("singlethread") seq_cst
|
|
; CHECK-NEXT: ret void
|
|
; CHECK-NEXT: }
|
|
|
|
define void @dipsy() {
|
|
fence seq_cst
|
|
fence syncscope("singlethread") seq_cst
|
|
ret void
|
|
}
|
|
|
|
; CHECK-LABEL: define void @patatino
|
|
; CHECK-NEXT: fence acquire
|
|
; CHECK-NEXT: fence seq_cst
|
|
; CHECK-NEXT: fence acquire
|
|
; CHECK-NEXT: fence seq_cst
|
|
; CHECK-NEXT: ret void
|
|
; CHECK-NEXT: }
|
|
|
|
define void @patatino() {
|
|
fence acquire
|
|
fence seq_cst
|
|
fence acquire
|
|
fence seq_cst
|
|
ret void
|
|
}
|