diff options
-rw-r--r-- | lld/COFF/LTO.cpp | 1 | ||||
-rw-r--r-- | lld/test/COFF/lto-cpu-string.ll | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lld/COFF/LTO.cpp b/lld/COFF/LTO.cpp index 66ae7b1d228..92d9ff0937c 100644 --- a/lld/COFF/LTO.cpp +++ b/lld/COFF/LTO.cpp @@ -60,6 +60,7 @@ static std::unique_ptr<lto::LTO> createLTO() { C.DisableVerify = true; C.DiagHandler = diagnosticHandler; C.OptLevel = Config->LTOO; + C.CPU = GetCPUStr(); C.MAttrs = GetMAttrs(); if (Config->SaveTemps) diff --git a/lld/test/COFF/lto-cpu-string.ll b/lld/test/COFF/lto-cpu-string.ll new file mode 100644 index 00000000000..840adcebf46 --- /dev/null +++ b/lld/test/COFF/lto-cpu-string.ll @@ -0,0 +1,21 @@ +; REQUIRES: x86 +; RUN: llvm-as %s -o %t.obj + +; RUN: lld-link %t.obj -noentry -nodefaultlib -out:%t.dll -dll +; RUN: llvm-objdump -d -section=".text" -no-leading-addr -no-show-raw-insn %t.dll | FileCheck %s +; CHECK: nop{{$}} + +; RUN: lld-link -mllvm:-mcpu=znver1 -noentry -nodefaultlib %t.obj -out:%t.znver1.dll -dll +; RUN: llvm-objdump -d -section=".text" -no-leading-addr -no-show-raw-insn %t.znver1.dll | FileCheck -check-prefix=ZNVER1 %s +; ZNVER1: nopw + +target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-windows-msvc19.14.26433" + +define dllexport void @foo() #0 { +entry: + call void asm sideeffect ".p2align 4, 0x90", "~{dirflag},~{fpsr},~{flags}"() + ret void +} + +attributes #0 = { "no-frame-pointer-elim"="true" } |