1437358beSMircea Trofin; Ensure calling bypassing the driver with -fembed-bitcode embeds bitcode pre- 2437358beSMircea Trofin; optimizations 3*27192879SMircea Trofin; REQUIRES: x86-registered-target 4437358beSMircea Trofin 5437358beSMircea Trofin; RUN: %clang_cc1 -O2 -triple x86_64-unknown-linux-gnu -emit-obj %s -o %t.o -fembed-bitcode=all 6437358beSMircea Trofin; RUN: llvm-objcopy --dump-section=.llvmbc=%t.bc %t.o /dev/null 7437358beSMircea Trofin 8437358beSMircea Trofin; Also check that the .llvmcmd section captures the optimization options. 9437358beSMircea Trofin; RUN: llvm-dis %t.bc -o - | FileCheck %s --check-prefix=CHECK-BC 10437358beSMircea Trofin; RUN: llvm-objcopy --dump-section=.llvmcmd=- %t.o /dev/null | FileCheck %s --check-prefix=CHECK-CMD 11437358beSMircea Trofin 12437358beSMircea Trofin; CHECK-BC-LABEL: define void @bar() #0 { 13437358beSMircea Trofin; CHECK-BC-NEXT: ret void 14437358beSMircea Trofin; CHECK-BC-NEXT: } 15437358beSMircea Trofin; CHECK-BC-LABEL: define void @foo() { 16437358beSMircea Trofin; CHECK-BC-NEXT: call void @bar() 17437358beSMircea Trofin; CHECK-BC-NEXT: ret void 18437358beSMircea Trofin; CHECK-BC-NEXT: } 19437358beSMircea Trofin; CHECK-BC-LABEL: attributes #0 = { alwaysinline } 20437358beSMircea Trofin; CHECK-CMD: -O2 21437358beSMircea Trofin 22437358beSMircea Trofindefine void @bar() #0 { 23437358beSMircea Trofin ret void 24437358beSMircea Trofin} 25437358beSMircea Trofin 26437358beSMircea Trofindefine void @foo() { 27437358beSMircea Trofin call void @bar() 28437358beSMircea Trofin ret void 29437358beSMircea Trofin} 30437358beSMircea Trofin 31437358beSMircea Trofinattributes #0 = { alwaysinline } 32