mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232879 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			27 lines
		
	
	
		
			750 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			750 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; 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" }
 |