; 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 }