mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
R600/SI: Add a stub GCNTargetMachine
This is equivalent to the AMDGPUTargetMachine now, but it is the starting point for separating R600 and GCN functionality into separate targets. It is recommened that users start using the gcn triple for GCN-based GPUs, because using the r600 triple for these GPUs will be deprecated in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225277 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -72,6 +72,7 @@ extern char &SIFixSGPRLiveRangesID;
|
|||||||
|
|
||||||
|
|
||||||
extern Target TheAMDGPUTarget;
|
extern Target TheAMDGPUTarget;
|
||||||
|
extern Target TheGCNTarget;
|
||||||
|
|
||||||
namespace AMDGPU {
|
namespace AMDGPU {
|
||||||
enum TargetIndex {
|
enum TargetIndex {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ static AsmPrinter *createAMDGPUAsmPrinterPass(TargetMachine &tm,
|
|||||||
|
|
||||||
extern "C" void LLVMInitializeR600AsmPrinter() {
|
extern "C" void LLVMInitializeR600AsmPrinter() {
|
||||||
TargetRegistry::RegisterAsmPrinter(TheAMDGPUTarget, createAMDGPUAsmPrinterPass);
|
TargetRegistry::RegisterAsmPrinter(TheAMDGPUTarget, createAMDGPUAsmPrinterPass);
|
||||||
|
TargetRegistry::RegisterAsmPrinter(TheGCNTarget, createAMDGPUAsmPrinterPass);
|
||||||
}
|
}
|
||||||
|
|
||||||
AMDGPUAsmPrinter::AMDGPUAsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
|
AMDGPUAsmPrinter::AMDGPUAsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ using namespace llvm;
|
|||||||
extern "C" void LLVMInitializeR600Target() {
|
extern "C" void LLVMInitializeR600Target() {
|
||||||
// Register the target
|
// Register the target
|
||||||
RegisterTargetMachine<AMDGPUTargetMachine> X(TheAMDGPUTarget);
|
RegisterTargetMachine<AMDGPUTargetMachine> X(TheAMDGPUTarget);
|
||||||
|
RegisterTargetMachine<GCNTargetMachine> Y(TheGCNTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ScheduleDAGInstrs *createR600MachineScheduler(MachineSchedContext *C) {
|
static ScheduleDAGInstrs *createR600MachineScheduler(MachineSchedContext *C) {
|
||||||
@@ -218,3 +219,13 @@ void AMDGPUPassConfig::addPreEmitPass() {
|
|||||||
addPass(createSILowerControlFlowPass(*TM), false);
|
addPass(createSILowerControlFlowPass(*TM), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// GCN Target Machine (SI+)
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
GCNTargetMachine::GCNTargetMachine(const Target &T, StringRef TT, StringRef FS,
|
||||||
|
StringRef CPU, TargetOptions Options, Reloc::Model RM,
|
||||||
|
CodeModel::Model CM, CodeGenOpt::Level OL) :
|
||||||
|
AMDGPUTargetMachine(T, TT, FS, CPU, Options, RM, CM, OL) { }
|
||||||
|
|||||||
@@ -24,7 +24,12 @@
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// AMDGPU Target Machine (R600+)
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
class AMDGPUTargetMachine : public LLVMTargetMachine {
|
class AMDGPUTargetMachine : public LLVMTargetMachine {
|
||||||
|
protected:
|
||||||
TargetLoweringObjectFile *TLOF;
|
TargetLoweringObjectFile *TLOF;
|
||||||
AMDGPUSubtarget Subtarget;
|
AMDGPUSubtarget Subtarget;
|
||||||
AMDGPUIntrinsicInfo IntrinsicInfo;
|
AMDGPUIntrinsicInfo IntrinsicInfo;
|
||||||
@@ -49,6 +54,18 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// GCN Target Machine (SI+)
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
class GCNTargetMachine : public AMDGPUTargetMachine {
|
||||||
|
|
||||||
|
public:
|
||||||
|
GCNTargetMachine(const Target &T, StringRef TT, StringRef FS,
|
||||||
|
StringRef CPU, TargetOptions Options, Reloc::Model RM,
|
||||||
|
CodeModel::Model CM, CodeGenOpt::Level OL);
|
||||||
|
};
|
||||||
|
|
||||||
} // End namespace llvm
|
} // End namespace llvm
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -311,6 +311,7 @@ bool AMDGPUOperand::isSWaitCnt() const {
|
|||||||
/// Force static initialization.
|
/// Force static initialization.
|
||||||
extern "C" void LLVMInitializeR600AsmParser() {
|
extern "C" void LLVMInitializeR600AsmParser() {
|
||||||
RegisterMCAsmParser<AMDGPUAsmParser> A(TheAMDGPUTarget);
|
RegisterMCAsmParser<AMDGPUAsmParser> A(TheAMDGPUTarget);
|
||||||
|
RegisterMCAsmParser<AMDGPUAsmParser> B(TheGCNTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define GET_REGISTER_MATCHER
|
#define GET_REGISTER_MATCHER
|
||||||
|
|||||||
@@ -92,20 +92,29 @@ static MCStreamer *createMCStreamer(const Target &T, StringRef TT,
|
|||||||
extern "C" void LLVMInitializeR600TargetMC() {
|
extern "C" void LLVMInitializeR600TargetMC() {
|
||||||
|
|
||||||
RegisterMCAsmInfo<AMDGPUMCAsmInfo> Y(TheAMDGPUTarget);
|
RegisterMCAsmInfo<AMDGPUMCAsmInfo> Y(TheAMDGPUTarget);
|
||||||
|
RegisterMCAsmInfo<AMDGPUMCAsmInfo> Z(TheGCNTarget);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCCodeGenInfo(TheAMDGPUTarget, createAMDGPUMCCodeGenInfo);
|
TargetRegistry::RegisterMCCodeGenInfo(TheAMDGPUTarget, createAMDGPUMCCodeGenInfo);
|
||||||
|
TargetRegistry::RegisterMCCodeGenInfo(TheGCNTarget, createAMDGPUMCCodeGenInfo);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCInstrInfo(TheAMDGPUTarget, createAMDGPUMCInstrInfo);
|
TargetRegistry::RegisterMCInstrInfo(TheAMDGPUTarget, createAMDGPUMCInstrInfo);
|
||||||
|
TargetRegistry::RegisterMCInstrInfo(TheGCNTarget, createAMDGPUMCInstrInfo);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCRegInfo(TheAMDGPUTarget, createAMDGPUMCRegisterInfo);
|
TargetRegistry::RegisterMCRegInfo(TheAMDGPUTarget, createAMDGPUMCRegisterInfo);
|
||||||
|
TargetRegistry::RegisterMCRegInfo(TheGCNTarget, createAMDGPUMCRegisterInfo);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCSubtargetInfo(TheAMDGPUTarget, createAMDGPUMCSubtargetInfo);
|
TargetRegistry::RegisterMCSubtargetInfo(TheAMDGPUTarget, createAMDGPUMCSubtargetInfo);
|
||||||
|
TargetRegistry::RegisterMCSubtargetInfo(TheGCNTarget, createAMDGPUMCSubtargetInfo);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCInstPrinter(TheAMDGPUTarget, createAMDGPUMCInstPrinter);
|
TargetRegistry::RegisterMCInstPrinter(TheAMDGPUTarget, createAMDGPUMCInstPrinter);
|
||||||
|
TargetRegistry::RegisterMCInstPrinter(TheGCNTarget, createAMDGPUMCInstPrinter);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCCodeEmitter(TheAMDGPUTarget, createAMDGPUMCCodeEmitter);
|
TargetRegistry::RegisterMCCodeEmitter(TheAMDGPUTarget, createAMDGPUMCCodeEmitter);
|
||||||
|
TargetRegistry::RegisterMCCodeEmitter(TheGCNTarget, createAMDGPUMCCodeEmitter);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCAsmBackend(TheAMDGPUTarget, createAMDGPUAsmBackend);
|
TargetRegistry::RegisterMCAsmBackend(TheAMDGPUTarget, createAMDGPUAsmBackend);
|
||||||
|
TargetRegistry::RegisterMCAsmBackend(TheGCNTarget, createAMDGPUAsmBackend);
|
||||||
|
|
||||||
TargetRegistry::RegisterMCObjectStreamer(TheAMDGPUTarget, createMCStreamer);
|
TargetRegistry::RegisterMCObjectStreamer(TheAMDGPUTarget, createMCStreamer);
|
||||||
|
TargetRegistry::RegisterMCObjectStreamer(TheGCNTarget, createMCStreamer);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ class Target;
|
|||||||
class raw_ostream;
|
class raw_ostream;
|
||||||
|
|
||||||
extern Target TheAMDGPUTarget;
|
extern Target TheAMDGPUTarget;
|
||||||
|
extern Target TheGCNTarget;
|
||||||
|
|
||||||
MCCodeEmitter *createR600MCCodeEmitter(const MCInstrInfo &MCII,
|
MCCodeEmitter *createR600MCCodeEmitter(const MCInstrInfo &MCII,
|
||||||
const MCRegisterInfo &MRI,
|
const MCRegisterInfo &MRI,
|
||||||
|
|||||||
@@ -16,11 +16,15 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
/// \brief The target for the AMDGPU backend
|
/// \brief The target which suports all AMD GPUs. This will eventually
|
||||||
|
/// be deprecated and there will be a R600 target and a GCN target.
|
||||||
Target llvm::TheAMDGPUTarget;
|
Target llvm::TheAMDGPUTarget;
|
||||||
|
/// \brief The target for GCN GPUs
|
||||||
|
Target llvm::TheGCNTarget;
|
||||||
|
|
||||||
/// \brief Extern function to initialize the targets for the AMDGPU backend
|
/// \brief Extern function to initialize the targets for the AMDGPU backend
|
||||||
extern "C" void LLVMInitializeR600TargetInfo() {
|
extern "C" void LLVMInitializeR600TargetInfo() {
|
||||||
RegisterTarget<Triple::r600, false>
|
RegisterTarget<Triple::r600, false>
|
||||||
R600(TheAMDGPUTarget, "r600", "AMD GPUs HD2XXX-HD6XXX");
|
R600(TheAMDGPUTarget, "r600", "AMD GPUs HD2XXX-HD6XXX");
|
||||||
|
RegisterTarget<Triple::amdgcn, false> GCN(TheGCNTarget, "amdgcn", "AMD GCN GPUs");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=R600-CHECK
|
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=R600-CHECK
|
||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
||||||
|
|
||||||
; R600-CHECK: {{^}}v4i32_kernel_arg:
|
; R600-CHECK: {{^}}v4i32_kernel_arg:
|
||||||
; R600-CHECK-DAG: MOV {{[* ]*}}T[[GPR:[0-9]]].X, KC0[3].Y
|
; R600-CHECK-DAG: MOV {{[* ]*}}T[[GPR:[0-9]]].X, KC0[3].Y
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=verde -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; On Southern Islands GPUs the local address space(3) uses 32-bit pointers and
|
; On Southern Islands GPUs the local address space(3) uses 32-bit pointers and
|
||||||
; the global address space(1) uses 64-bit pointers. These tests check to make sure
|
; the global address space(1) uses 64-bit pointers. These tests check to make sure
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
||||||
|
|
||||||
; SI-CHECK: {{^}}f64_kernel_arg:
|
; SI-CHECK: {{^}}f64_kernel_arg:
|
||||||
; SI-CHECK-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0x9
|
; SI-CHECK-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0x9
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -debug
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -debug
|
||||||
; REQUIRES: asserts
|
; REQUIRES: asserts
|
||||||
|
|
||||||
; Check that SelectionDAGDumper does not crash on int_SI_if.
|
; Check that SelectionDAGDumper does not crash on int_SI_if.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=EG-CHECK --check-prefix=FUNC %s
|
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=EG-CHECK --check-prefix=FUNC %s
|
||||||
; RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI-CHECK --check-prefix=FUNC %s
|
; RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI-CHECK --check-prefix=FUNC %s
|
||||||
|
|
||||||
;FUNC-LABEL: {{^}}test1:
|
;FUNC-LABEL: {{^}}test1:
|
||||||
;EG-CHECK: ADD_INT {{[* ]*}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
;EG-CHECK: ADD_INT {{[* ]*}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() readnone
|
declare i32 @llvm.r600.read.tidig.x() readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
||||||
|
|
||||||
; Test that codegenprepare understands address space sizes
|
; Test that codegenprepare understands address space sizes
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=verde -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}test2:
|
; FUNC-LABEL: {{^}}test2:
|
||||||
; EG: AND_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
; EG: AND_INT {{\*? *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK-LABEL: {{^}}anyext_i1_i32:
|
; CHECK-LABEL: {{^}}anyext_i1_i32:
|
||||||
; CHECK: v_cndmask_b32_e64
|
; CHECK: v_cndmask_b32_e64
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -verify-machineinstrs -march=r600 -mcpu=SI -mattr=-promote-alloca < %s | FileCheck -check-prefix=SI-ALLOCA -check-prefix=SI %s
|
; RUN: llc -verify-machineinstrs -march=amdgcn -mcpu=SI -mattr=-promote-alloca < %s | FileCheck -check-prefix=SI-ALLOCA -check-prefix=SI %s
|
||||||
; RUN: llc -verify-machineinstrs -march=r600 -mcpu=SI -mattr=+promote-alloca < %s | FileCheck -check-prefix=SI-PROMOTE -check-prefix=SI %s
|
; RUN: llc -verify-machineinstrs -march=amdgcn -mcpu=SI -mattr=+promote-alloca < %s | FileCheck -check-prefix=SI-PROMOTE -check-prefix=SI %s
|
||||||
|
|
||||||
declare i32 @llvm.SI.tid() nounwind readnone
|
declare i32 @llvm.SI.tid() nounwind readnone
|
||||||
declare void @llvm.AMDGPU.barrier.local() nounwind noduplicate
|
declare void @llvm.AMDGPU.barrier.local() nounwind noduplicate
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
declare i32 @llvm.SI.tid() readnone
|
declare i32 @llvm.SI.tid() readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -strict-whitespace -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -strict-whitespace -check-prefix=CI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}lds_atomic_cmpxchg_ret_i32_offset:
|
; FUNC-LABEL: {{^}}lds_atomic_cmpxchg_ret_i32_offset:
|
||||||
; SI: s_load_dword [[PTR:s[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0xb
|
; SI: s_load_dword [[PTR:s[0-9]+]], s{{\[[0-9]+:[0-9]+\]}}, 0xb
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}atomic_add_local:
|
; FUNC-LABEL: {{^}}atomic_add_local:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}atomic_sub_local:
|
; FUNC-LABEL: {{^}}atomic_sub_local:
|
||||||
; R600: LDS_SUB *
|
; R600: LDS_SUB *
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; XFAIL: *
|
; XFAIL: *
|
||||||
; RUN: llc -O0 -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
; RUN: llc -O0 -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
||||||
|
|
||||||
; CHECK-LABEL: {{^}}test_branch(
|
; CHECK-LABEL: {{^}}test_branch(
|
||||||
define void @test_branch(i32 addrspace(1)* noalias %out, i32 addrspace(1)* noalias %in, i32 %val) nounwind {
|
define void @test_branch(i32 addrspace(1)* noalias %out, i32 addrspace(1)* noalias %in, i32 %val) nounwind {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; XFAIL: *
|
; XFAIL: *
|
||||||
; RUN: llc -O0 -verify-machineinstrs -march=r600 -mcpu=SI < %s | FileCheck %s
|
; RUN: llc -O0 -verify-machineinstrs -march=amdgcn -mcpu=SI < %s | FileCheck %s
|
||||||
|
|
||||||
; CHECK-LABEL: {{^}}test_loop:
|
; CHECK-LABEL: {{^}}test_loop:
|
||||||
define void @test_loop(i32 addrspace(1)* noalias %out, i32 addrspace(1)* noalias %in, i32 %val) nounwind {
|
define void @test_loop(i32 addrspace(1)* noalias %out, i32 addrspace(1)* noalias %in, i32 %val) nounwind {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=R600-CHECK %s
|
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=R600-CHECK %s
|
||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI-CHECK %s
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI-CHECK %s
|
||||||
|
|
||||||
; BFI_INT Definition pattern from ISA docs
|
; BFI_INT Definition pattern from ISA docs
|
||||||
; (y & x) | (z & ~x)
|
; (y & x) | (z & ~x)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; This test just checks that the compiler doesn't crash.
|
; This test just checks that the compiler doesn't crash.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.bswap.i32(i32) nounwind readnone
|
declare i32 @llvm.bswap.i32(i32) nounwind readnone
|
||||||
declare <2 x i32> @llvm.bswap.v2i32(<2 x i32>) nounwind readnone
|
declare <2 x i32> @llvm.bswap.v2i32(<2 x i32>) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=R600-CHECK
|
; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=R600-CHECK
|
||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=SI-CHECK
|
||||||
|
|
||||||
; R600-CHECK: {{^}}build_vector2:
|
; R600-CHECK: {{^}}build_vector2:
|
||||||
; R600-CHECK: MOV
|
; R600-CHECK: MOV
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: not llc -march=r600 -mcpu=SI -verify-machineinstrs< %s 2>&1 | FileCheck %s
|
; RUN: not llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s 2>&1 | FileCheck %s
|
||||||
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s
|
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s
|
||||||
|
|
||||||
; CHECK: error: unsupported call to function external_function in test_call_external
|
; CHECK: error: unsupported call to function external_function in test_call_external
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: opt -codegenprepare -S -o - %s | FileCheck --check-prefix=OPT %s
|
; RUN: opt -codegenprepare -S -o - %s | FileCheck --check-prefix=OPT %s
|
||||||
; RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI-LLC %s
|
; RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI-LLC %s
|
||||||
|
|
||||||
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:64:64-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
|
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:64:64-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
|
||||||
target triple = "r600--"
|
target triple = "r600--"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() #1
|
declare i32 @llvm.r600.read.tidig.x() #1
|
||||||
declare float @llvm.fabs.f32(float) #1
|
declare float @llvm.fabs.f32(float) #1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}test_concat_v1i32:
|
; FUNC-LABEL: {{^}}test_concat_v1i32:
|
||||||
; 0x80f000 is the high 32 bits of the resource descriptor used by MUBUF
|
; 0x80f000 is the high 32 bits of the resource descriptor used by MUBUF
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=tahiti < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}test_copy_v4i8:
|
; FUNC-LABEL: {{^}}test_copy_v4i8:
|
||||||
; SI: buffer_load_dword [[REG:v[0-9]+]]
|
; SI: buffer_load_dword [[REG:v[0-9]+]]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=-promote-alloca -verify-machineinstrs < %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=-promote-alloca -verify-machineinstrs < %s
|
||||||
|
|
||||||
; Test that CopyToReg instructions don't have non-register operands prior
|
; Test that CopyToReg instructions don't have non-register operands prior
|
||||||
; to being emitted.
|
; to being emitted.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.ctlz.i32(i32, i1) nounwind readnone
|
declare i32 @llvm.ctlz.i32(i32, i1) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.ctpop.i32(i32) nounwind readnone
|
declare i32 @llvm.ctpop.i32(i32) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i64 @llvm.ctpop.i64(i64) nounwind readnone
|
declare i64 @llvm.ctpop.i64(i64) nounwind readnone
|
||||||
declare <2 x i64> @llvm.ctpop.v2i64(<2 x i64>) nounwind readnone
|
declare <2 x i64> @llvm.ctpop.v2i64(<2 x i64>) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.cttz.i32(i32, i1) nounwind readnone
|
declare i32 @llvm.cttz.i32(i32, i1) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
; SI-LABEL: {{^}}load_i8_to_f32:
|
; SI-LABEL: {{^}}load_i8_to_f32:
|
||||||
; SI: buffer_load_ubyte [[LOADREG:v[0-9]+]],
|
; SI: buffer_load_ubyte [[LOADREG:v[0-9]+]],
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=-fp32-denormals,+fp64-denormals < %s | FileCheck -check-prefix=FP64-DENORMAL -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=-fp32-denormals,+fp64-denormals < %s | FileCheck -check-prefix=FP64-DENORMAL -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=+fp32-denormals,-fp64-denormals < %s | FileCheck -check-prefix=FP32-DENORMAL -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=+fp32-denormals,-fp64-denormals < %s | FileCheck -check-prefix=FP32-DENORMAL -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=+fp32-denormals,+fp64-denormals < %s | FileCheck -check-prefix=BOTH-DENORMAL -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=+fp32-denormals,+fp64-denormals < %s | FileCheck -check-prefix=BOTH-DENORMAL -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=-fp32-denormals,-fp64-denormals < %s | FileCheck -check-prefix=NO-DENORMAL -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=-fp32-denormals,-fp64-denormals < %s | FileCheck -check-prefix=NO-DENORMAL -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=-fp32-denormals < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=-fp32-denormals < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -mattr=+fp64-denormals < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -mattr=+fp64-denormals < %s | FileCheck -check-prefix=DEFAULT -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}test_kernel:
|
; FUNC-LABEL: {{^}}test_kernel:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI --check-prefix=CHECK %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI --check-prefix=CHECK %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=CI --check-prefix=CHECK %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=CI --check-prefix=CHECK %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() #0
|
declare i32 @llvm.r600.read.tidig.x() #0
|
||||||
declare void @llvm.AMDGPU.barrier.local() #1
|
declare void @llvm.AMDGPU.barrier.local() #1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
||||||
|
|
||||||
; FIXME: We don't get cases where the address was an SGPR because we
|
; FIXME: We don't get cases where the address was an SGPR because we
|
||||||
; get a copy to the address register for each one.
|
; get a copy to the address register for each one.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
||||||
|
|
||||||
; XFAIL: *
|
; XFAIL: *
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
@lds = addrspace(3) global [512 x float] undef, align 4
|
@lds = addrspace(3) global [512 x float] undef, align 4
|
||||||
@lds.f64 = addrspace(3) global [512 x double] undef, align 8
|
@lds.f64 = addrspace(3) global [512 x double] undef, align 8
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -strict-whitespace -check-prefix=SI %s
|
||||||
|
|
||||||
@lds = addrspace(3) global [512 x float] undef, align 4
|
@lds = addrspace(3) global [512 x float] undef, align 4
|
||||||
@lds.f64 = addrspace(3) global [512 x double] undef, align 8
|
@lds.f64 = addrspace(3) global [512 x double] undef, align 8
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs -mattr=+load-store-opt -enable-misched < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
|
|
||||||
@lds = addrspace(3) global [512 x float] undef, align 4
|
@lds = addrspace(3) global [512 x float] undef, align 4
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs -filetype=obj | llvm-readobj -s -symbols - | FileCheck --check-prefix=ELF-CHECK %s
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs -filetype=obj | llvm-readobj -s -symbols - | FileCheck --check-prefix=ELF-CHECK %s
|
||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs -o - | FileCheck --check-prefix=CONFIG-CHECK %s
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs -o - | FileCheck --check-prefix=CONFIG-CHECK %s
|
||||||
|
|
||||||
; ELF-CHECK: Format: ELF32
|
; ELF-CHECK: Format: ELF32
|
||||||
; ELF-CHECK: Name: .AMDGPU.config
|
; ELF-CHECK: Name: .AMDGPU.config
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
; Make sure we don't assert on empty functions
|
; Make sure we don't assert on empty functions
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}anyext_load_i8:
|
; FUNC-LABEL: {{^}}anyext_load_i8:
|
||||||
; EG: AND_INT
|
; EG: AND_INT
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}extract_vector_elt_v2i16:
|
; FUNC-LABEL: {{^}}extract_vector_elt_v2i16:
|
||||||
; SI: buffer_load_ushort
|
; SI: buffer_load_ushort
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s -check-prefix=R600 -check-prefix=FUNC
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s -check-prefix=R600 -check-prefix=FUNC
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fadd_f32:
|
; FUNC-LABEL: {{^}}fadd_f32:
|
||||||
; R600: ADD {{\** *}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z, KC0[2].W
|
; R600: ADD {{\** *}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z, KC0[2].W
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK: {{^}}fadd_f64:
|
; CHECK: {{^}}fadd_f64:
|
||||||
; CHECK: v_add_f64 {{v[[0-9]+:[0-9]+]}}, {{v[[0-9]+:[0-9]+]}}, {{v[[0-9]+:[0-9]+]}}
|
; CHECK: v_add_f64 {{v[[0-9]+:[0-9]+]}}, {{v[[0-9]+:[0-9]+]}}, {{v[[0-9]+:[0-9]+]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare float @llvm.ceil.f32(float) nounwind readnone
|
declare float @llvm.ceil.f32(float) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.ceil.f64(double) nounwind readnone
|
declare double @llvm.ceil.f64(double) nounwind readnone
|
||||||
declare <2 x double> @llvm.ceil.v2f64(<2 x double>) nounwind readnone
|
declare <2 x double> @llvm.ceil.v2f64(<2 x double>) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK-LABEL: {{^}}flt_f64:
|
; CHECK-LABEL: {{^}}flt_f64:
|
||||||
; CHECK: v_cmp_nge_f64_e32 vcc, {{v[[0-9]+:[0-9]+], v[[0-9]+:[0-9]+]}}
|
; CHECK: v_cmp_nge_f64_e32 vcc, {{v[[0-9]+:[0-9]+], v[[0-9]+:[0-9]+]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK: {{^}}fconst_f64:
|
; CHECK: {{^}}fconst_f64:
|
||||||
; CHECK-DAG: s_mov_b32 {{s[0-9]+}}, 0x40140000
|
; CHECK-DAG: s_mov_b32 {{s[0-9]+}}, 0x40140000
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.copysign.f64(double, double) nounwind readnone
|
declare double @llvm.copysign.f64(double, double) nounwind readnone
|
||||||
declare <2 x double> @llvm.copysign.v2f64(<2 x double>, <2 x double>) nounwind readnone
|
declare <2 x double> @llvm.copysign.v2f64(<2 x double>, <2 x double>) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
; These tests check that fdiv is expanded correctly and also test that the
|
; These tests check that fdiv is expanded correctly and also test that the
|
||||||
; scheduler is scheduling the RECIP_IEEE and MUL_IEEE instructions in separate
|
; scheduler is scheduling the RECIP_IEEE and MUL_IEEE instructions in separate
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK: {{^}}fdiv_f64:
|
; CHECK: {{^}}fdiv_f64:
|
||||||
; CHECK: v_rcp_f64_e32 {{v\[[0-9]+:[0-9]+\]}}
|
; CHECK: v_rcp_f64_e32 {{v\[[0-9]+:[0-9]+\]}}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.floor.f64(double) nounwind readnone
|
declare double @llvm.floor.f64(double) nounwind readnone
|
||||||
declare <2 x double> @llvm.floor.v2f64(<2 x double>) nounwind readnone
|
declare <2 x double> @llvm.floor.v2f64(<2 x double>) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -O0 -march=r600 -mcpu=bonaire -mattr=-promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-NO-PROMOTE %s
|
; RUN: llc -O0 -march=amdgcn -mcpu=bonaire -mattr=-promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-NO-PROMOTE %s
|
||||||
; RUN: llc -O0 -march=r600 -mcpu=bonaire -mattr=+promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-PROMOTE %s
|
; RUN: llc -O0 -march=amdgcn -mcpu=bonaire -mattr=+promote-alloca < %s | FileCheck -check-prefix=CHECK -check-prefix=CHECK-PROMOTE %s
|
||||||
|
|
||||||
; Disable optimizations in case there are optimizations added that
|
; Disable optimizations in case there are optimizations added that
|
||||||
; specialize away generic pointer accesses.
|
; specialize away generic pointer accesses.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.fma.f64(double, double, double) nounwind readnone
|
declare double @llvm.fma.f64(double, double, double) nounwind readnone
|
||||||
declare <2 x double> @llvm.fma.v2f64(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
|
declare <2 x double> @llvm.fma.v2f64(<2 x double>, <2 x double>, <2 x double>) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare float @llvm.fma.f32(float, float, float) nounwind readnone
|
declare float @llvm.fma.f32(float, float, float) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
declare float @llvm.maxnum.f32(float, float) nounwind readnone
|
declare float @llvm.maxnum.f32(float, float) nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() #1
|
declare i32 @llvm.r600.read.tidig.x() #1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.maxnum.f64(double, double) #0
|
declare double @llvm.maxnum.f64(double, double) #0
|
||||||
declare <2 x double> @llvm.maxnum.v2f64(<2 x double>, <2 x double>) #0
|
declare <2 x double> @llvm.maxnum.v2f64(<2 x double>, <2 x double>) #0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare float @llvm.maxnum.f32(float, float) #0
|
declare float @llvm.maxnum.f32(float, float) #0
|
||||||
declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>) #0
|
declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>) #0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
declare float @llvm.minnum.f32(float, float) nounwind readnone
|
declare float @llvm.minnum.f32(float, float) nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() #1
|
declare i32 @llvm.r600.read.tidig.x() #1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.minnum.f64(double, double) #0
|
declare double @llvm.minnum.f64(double, double) #0
|
||||||
declare <2 x double> @llvm.minnum.v2f64(<2 x double>, <2 x double>) #0
|
declare <2 x double> @llvm.minnum.v2f64(<2 x double>, <2 x double>) #0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare float @llvm.minnum.f32(float, float) #0
|
declare float @llvm.minnum.f32(float, float) #0
|
||||||
declare <2 x float> @llvm.minnum.v2f32(<2 x float>, <2 x float>) #0
|
declare <2 x float> @llvm.minnum.v2f32(<2 x float>, <2 x float>) #0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=FUNC -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=FUNC -check-prefix=SI %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fmul_f64:
|
; FUNC-LABEL: {{^}}fmul_f64:
|
||||||
; SI: v_mul_f64 {{v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\]}}
|
; SI: v_mul_f64 {{v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s
|
||||||
|
|
||||||
declare float @llvm.fmuladd.f32(float, float, float)
|
declare float @llvm.fmuladd.f32(float, float, float)
|
||||||
declare double @llvm.fmuladd.f64(double, double, double)
|
declare double @llvm.fmuladd.f64(double, double, double)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s
|
||||||
|
|
||||||
; This should have the exactly the same output as the test for rint,
|
; This should have the exactly the same output as the test for rint,
|
||||||
; so no need to check anything.
|
; so no need to check anything.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FIXME: Check something here. Currently it seems fabs + fneg aren't
|
; FIXME: Check something here. Currently it seems fabs + fneg aren't
|
||||||
; into 2 modifiers, although theoretically that should work.
|
; into 2 modifiers, although theoretically that should work.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fneg_fabs_fadd_f32:
|
; FUNC-LABEL: {{^}}fneg_fabs_fadd_f32:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fneg_f64:
|
; FUNC-LABEL: {{^}}fneg_f64:
|
||||||
; SI: v_xor_b32
|
; SI: v_xor_b32
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fneg_f32:
|
; FUNC-LABEL: {{^}}fneg_f32:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
declare float @llvm.convert.from.fp16.f32(i16) nounwind readnone
|
declare float @llvm.convert.from.fp16.f32(i16) nounwind readnone
|
||||||
declare double @llvm.convert.from.fp16.f64(i16) nounwind readnone
|
declare double @llvm.convert.from.fp16.f64(i16) nounwind readnone
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
declare i16 @llvm.convert.to.fp16.f32(float) nounwind readnone
|
declare i16 @llvm.convert.to.fp16.f32(float) nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s --check-prefix=EG --check-prefix=FUNC
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s --check-prefix=EG --check-prefix=FUNC
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s --check-prefix=SI --check-prefix=FUNC
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s --check-prefix=SI --check-prefix=FUNC
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fp_to_sint_i32:
|
; FUNC-LABEL: {{^}}fp_to_sint_i32:
|
||||||
; EG: FLT_TO_INT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}}
|
; EG: FLT_TO_INT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
declare i32 @llvm.r600.read.tidig.x() nounwind readnone
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s -check-prefix=EG -check-prefix=FUNC
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s -check-prefix=EG -check-prefix=FUNC
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}fp_to_uint_f32_to_i32:
|
; FUNC-LABEL: {{^}}fp_to_uint_f32_to_i32:
|
||||||
; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}}
|
; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=CHECK
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=CHECK
|
||||||
|
|
||||||
; CHECK: {{^}}fpext:
|
; CHECK: {{^}}fpext:
|
||||||
; CHECK: v_cvt_f64_f32_e32
|
; CHECK: v_cvt_f64_f32_e32
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=CHECK
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck %s --check-prefix=CHECK
|
||||||
|
|
||||||
; CHECK: {{^}}fptrunc:
|
; CHECK: {{^}}fptrunc:
|
||||||
; CHECK: v_cvt_f32_f64_e32
|
; CHECK: v_cvt_f32_f64_e32
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -enable-misched < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -enable-misched < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}frem_f32:
|
; FUNC-LABEL: {{^}}frem_f32:
|
||||||
; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{.*$}}
|
; SI-DAG: buffer_load_dword [[X:v[0-9]+]], {{.*$}}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
; RUN: llc < %s -march=amdgcn -mcpu=tahiti -verify-machineinstrs | FileCheck %s
|
||||||
|
|
||||||
; CHECK: {{^}}fsqrt_f32:
|
; CHECK: {{^}}fsqrt_f32:
|
||||||
; CHECK: v_sqrt_f32_e32 {{v[0-9]+, v[0-9]+}}
|
; CHECK: v_sqrt_f32_e32 {{v[0-9]+, v[0-9]+}}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}v_fsub_f32:
|
; FUNC-LABEL: {{^}}v_fsub_f32:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=tahiti -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
; SI-LABEL: {{^}}fsub_f64:
|
; SI-LABEL: {{^}}fsub_f64:
|
||||||
; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\], -v\[[0-9]+:[0-9]+\]}}
|
; SI: v_add_f64 {{v\[[0-9]+:[0-9]+\], v\[[0-9]+:[0-9]+\], -v\[[0-9]+:[0-9]+\]}}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=bonaire < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
|
||||||
|
|
||||||
declare double @llvm.trunc.f64(double) nounwind readnone
|
declare double @llvm.trunc.f64(double) nounwind readnone
|
||||||
declare <2 x double> @llvm.trunc.v2f64(<2 x double>) nounwind readnone
|
declare <2 x double> @llvm.trunc.v2f64(<2 x double>) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG --check-prefix=FUNC %s
|
; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG --check-prefix=FUNC %s
|
||||||
; RUN: llc -march=r600 -mcpu=SI < %s | FileCheck -check-prefix=SI --check-prefix=FUNC %s
|
; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI --check-prefix=FUNC %s
|
||||||
|
|
||||||
declare float @llvm.trunc.f32(float) nounwind readnone
|
declare float @llvm.trunc.f32(float) nounwind readnone
|
||||||
declare <2 x float> @llvm.trunc.v2f32(<2 x float>) nounwind readnone
|
declare <2 x float> @llvm.trunc.v2f32(<2 x float>) nounwind readnone
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs< %s | FileCheck --check-prefix=SI --check-prefix=CHECK %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s | FileCheck --check-prefix=SI --check-prefix=CHECK %s
|
||||||
; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs< %s | FileCheck --check-prefix=CI --check-prefix=CHECK %s
|
; RUN: llc -march=amdgcn -mcpu=bonaire -verify-machineinstrs< %s | FileCheck --check-prefix=CI --check-prefix=CHECK %s
|
||||||
|
|
||||||
define void @use_gep_address_space([1024 x i32] addrspace(3)* %array) nounwind {
|
define void @use_gep_address_space([1024 x i32] addrspace(3)* %array) nounwind {
|
||||||
; CHECK-LABEL: {{^}}use_gep_address_space:
|
; CHECK-LABEL: {{^}}use_gep_address_space:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
|
||||||
|
|
||||||
; Make sure the GlobalDirective isn't merged with the function name
|
; Make sure the GlobalDirective isn't merged with the function name
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: not llc -march=r600 -mcpu=SI < %s 2>&1 | FileCheck %s
|
; RUN: not llc -march=amdgcn -mcpu=SI < %s 2>&1 | FileCheck %s
|
||||||
|
|
||||||
; CHECK: error: unsupported initializer for address space in load_init_global_global
|
; CHECK: error: unsupported initializer for address space in load_init_global_global
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=r600 -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI --check-prefix=FUNC %s
|
; RUN: llc < %s -march=amdgcn -mcpu=SI -verify-machineinstrs | FileCheck --check-prefix=SI --check-prefix=FUNC %s
|
||||||
|
|
||||||
; FUNC-LABEL: {{^}}atomic_add_i32_offset:
|
; FUNC-LABEL: {{^}}atomic_add_i32_offset:
|
||||||
; SI: buffer_atomic_add v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
|
; SI: buffer_atomic_add v{{[0-9]+}}, s[{{[0-9]+}}:{{[0-9]+}}], 0 offset:16{{$}}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user