diff options
author | Eric Christopher <echristo@gmail.com> | 2015-03-21 03:13:10 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2015-03-21 03:13:10 +0000 |
commit | c5a85af3b23b958f1c86768b7622503d76761966 (patch) | |
tree | aeee4a24c27d615f149cdd235b81ddf4abb4b463 /llvm/test/CodeGen/X86/function-subtarget-features-2.ll | |
parent | cba722f8c13c8a52cf81a09ab4ad19478bb82e6e (diff) | |
download | bcm5719-llvm-c5a85af3b23b958f1c86768b7622503d76761966.tar.gz bcm5719-llvm-c5a85af3b23b958f1c86768b7622503d76761966.zip |
Cache the Function dependent subtarget on the MachineFunction.
As preparation for removing the getSubtargetImpl() call from
TargetMachine go ahead and flip the switch on caching the function
dependent subtarget and remove the bare getSubtargetImpl call
from the X86 port. As part of this add a few tests that show we
can generate code and assemble on X86 based on features/cpu on
the Function.
llvm-svn: 232879
Diffstat (limited to 'llvm/test/CodeGen/X86/function-subtarget-features-2.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/function-subtarget-features-2.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/function-subtarget-features-2.ll b/llvm/test/CodeGen/X86/function-subtarget-features-2.ll new file mode 100644 index 00000000000..d7c7c2fdb6f --- /dev/null +++ b/llvm/test/CodeGen/X86/function-subtarget-features-2.ll @@ -0,0 +1,26 @@ +; RUN: llc < %s -march=x86-64 -filetype=obj -o - | llvm-objdump -d - | FileCheck %s + +; This test verifies that we assemble code for different architectures +; based on target-cpu and target-features attributes. +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" + +define void @foo() #0 { +entry: + call void asm sideeffect "aeskeygenassist $$0x4, %xmm0, %xmm1", "~{dirflag},~{fpsr},~{flags}"() + ret void +} + +; CHECK: foo +; CHECK: aeskeygenassist + +define void @bar() #2 { +entry: + call void asm sideeffect "crc32b 4(%rbx), %eax", "~{dirflag},~{fpsr},~{flags}"() + ret void +} + +; CHECK: bar +; CHECK: crc32b + +attributes #0 = { "target-cpu"="x86-64" "target-features"="+avx2" } +attributes #2 = { "target-cpu"="corei7" "target-features"="+sse4.2" } |