mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-29 22:30:33 +00:00
Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
Summary: AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output. The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as. All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler. Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2686 llvm-svn: 201237
This commit is contained in:
parent
db2274631d
commit
e647d6441b
@ -299,6 +299,14 @@ namespace llvm {
|
|||||||
|
|
||||||
std::vector<MCCFIInstruction> InitialFrameState;
|
std::vector<MCCFIInstruction> InitialFrameState;
|
||||||
|
|
||||||
|
//===--- Integrated Assembler State ----------------------------------===//
|
||||||
|
/// Should we use the integrated assembler?
|
||||||
|
/// The integrated assembler should be enabled by default (by the
|
||||||
|
/// constructors) when failing to parse a valid piece of assembly (inline
|
||||||
|
/// or otherwise) is considered a bug. It may then be overridden after
|
||||||
|
/// construction (see LLVMTargetMachine::initAsmInfo()).
|
||||||
|
bool UseIntegratedAssembler;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MCAsmInfo();
|
explicit MCAsmInfo();
|
||||||
virtual ~MCAsmInfo();
|
virtual ~MCAsmInfo();
|
||||||
@ -526,6 +534,14 @@ namespace llvm {
|
|||||||
const std::vector<MCCFIInstruction> &getInitialFrameState() const {
|
const std::vector<MCCFIInstruction> &getInitialFrameState() const {
|
||||||
return InitialFrameState;
|
return InitialFrameState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return true if assembly (inline or otherwise) should be parsed.
|
||||||
|
bool useIntegratedAssembler() const { return UseIntegratedAssembler; }
|
||||||
|
|
||||||
|
/// Set whether assembly (inline or otherwise) should be parsed.
|
||||||
|
void setUseIntegratedAssembler(bool Value) {
|
||||||
|
UseIntegratedAssembler = Value;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,10 +79,14 @@ void AsmPrinter::EmitInlineAsm(StringRef Str, const MDNode *LocMDNode,
|
|||||||
if (isNullTerminated)
|
if (isNullTerminated)
|
||||||
Str = Str.substr(0, Str.size()-1);
|
Str = Str.substr(0, Str.size()-1);
|
||||||
|
|
||||||
// If the output streamer is actually a .s file, just emit the blob textually.
|
// If the output streamer does not have mature MC support or the integrated
|
||||||
|
// assembler has been disabled, just emit the blob textually.
|
||||||
|
// Otherwise parse the asm and emit it via MC support.
|
||||||
// This is useful in case the asm parser doesn't handle something but the
|
// This is useful in case the asm parser doesn't handle something but the
|
||||||
// system assembler does.
|
// system assembler does.
|
||||||
if (OutStreamer.hasRawTextSupport()) {
|
const MCAsmInfo *MCAI = TM.getMCAsmInfo();
|
||||||
|
assert(MCAI && "No MCAsmInfo");
|
||||||
|
if (!MCAI->useIntegratedAssembler()) {
|
||||||
OutStreamer.EmitRawText(Str);
|
OutStreamer.EmitRawText(Str);
|
||||||
emitInlineAsmEnd(TM.getSubtarget<MCSubtargetInfo>(), 0);
|
emitInlineAsmEnd(TM.getSubtarget<MCSubtargetInfo>(), 0);
|
||||||
return;
|
return;
|
||||||
|
@ -53,6 +53,10 @@ static cl::opt<cl::boolOrDefault>
|
|||||||
AsmVerbose("asm-verbose", cl::desc("Add comments to directives."),
|
AsmVerbose("asm-verbose", cl::desc("Add comments to directives."),
|
||||||
cl::init(cl::BOU_UNSET));
|
cl::init(cl::BOU_UNSET));
|
||||||
|
|
||||||
|
static cl::opt<bool>
|
||||||
|
NoIntegratedAssembler("no-integrated-as", cl::Hidden,
|
||||||
|
cl::desc("Disable integrated assembler"));
|
||||||
|
|
||||||
static bool getVerboseAsm() {
|
static bool getVerboseAsm() {
|
||||||
switch (AsmVerbose) {
|
switch (AsmVerbose) {
|
||||||
case cl::BOU_UNSET: return TargetMachine::getAsmVerbosityDefault();
|
case cl::BOU_UNSET: return TargetMachine::getAsmVerbosityDefault();
|
||||||
@ -63,14 +67,20 @@ static bool getVerboseAsm() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LLVMTargetMachine::initAsmInfo() {
|
void LLVMTargetMachine::initAsmInfo() {
|
||||||
AsmInfo = TheTarget.createMCAsmInfo(*getRegisterInfo(), TargetTriple);
|
MCAsmInfo *TmpAsmInfo = TheTarget.createMCAsmInfo(*getRegisterInfo(),
|
||||||
|
TargetTriple);
|
||||||
// TargetSelect.h moved to a different directory between LLVM 2.9 and 3.0,
|
// TargetSelect.h moved to a different directory between LLVM 2.9 and 3.0,
|
||||||
// and if the old one gets included then MCAsmInfo will be NULL and
|
// and if the old one gets included then MCAsmInfo will be NULL and
|
||||||
// we'll crash later.
|
// we'll crash later.
|
||||||
// Provide the user with a useful error message about what's wrong.
|
// Provide the user with a useful error message about what's wrong.
|
||||||
assert(AsmInfo && "MCAsmInfo not initialized. "
|
assert(TmpAsmInfo && "MCAsmInfo not initialized. "
|
||||||
"Make sure you include the correct TargetSelect.h"
|
"Make sure you include the correct TargetSelect.h"
|
||||||
"and that InitializeAllTargetMCs() is being invoked!");
|
"and that InitializeAllTargetMCs() is being invoked!");
|
||||||
|
|
||||||
|
if (NoIntegratedAssembler)
|
||||||
|
TmpAsmInfo->setUseIntegratedAssembler(false);
|
||||||
|
|
||||||
|
AsmInfo = TmpAsmInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple,
|
LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple,
|
||||||
|
@ -86,6 +86,20 @@ MCAsmInfo::MCAsmInfo() {
|
|||||||
DwarfRegNumForCFI = false;
|
DwarfRegNumForCFI = false;
|
||||||
NeedsDwarfSectionOffsetDirective = false;
|
NeedsDwarfSectionOffsetDirective = false;
|
||||||
UseParensForSymbolVariant = false;
|
UseParensForSymbolVariant = false;
|
||||||
|
|
||||||
|
// FIXME: Clang's logic should be synced with the logic used to initialize
|
||||||
|
// this member and the two implementations should be merged.
|
||||||
|
// For reference:
|
||||||
|
// - Solaris always enables the integrated assembler by default
|
||||||
|
// - SparcELFMCAsmInfo and X86ELFMCAsmInfo are handling this case
|
||||||
|
// - Windows always enables the integrated assembler by default
|
||||||
|
// - MCAsmInfoCOFF is handling this case, should it be MCAsmInfoMicrosoft?
|
||||||
|
// - MachO targets always enables the integrated assembler by default
|
||||||
|
// - MCAsmInfoDarwin is handling this case
|
||||||
|
// - Generic_GCC toolchains enable the integrated assembler on a per
|
||||||
|
// architecture basis.
|
||||||
|
// - The target subclasses for AArch64, ARM, and X86 handle these cases
|
||||||
|
UseIntegratedAssembler = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MCAsmInfo::~MCAsmInfo() {
|
MCAsmInfo::~MCAsmInfo() {
|
||||||
|
@ -35,6 +35,8 @@ MCAsmInfoCOFF::MCAsmInfoCOFF() {
|
|||||||
HasLEB128 = true; // Target asm supports leb128 directives (little-endian)
|
HasLEB128 = true; // Target asm supports leb128 directives (little-endian)
|
||||||
SupportsDebugInformation = true;
|
SupportsDebugInformation = true;
|
||||||
NeedsDwarfSectionOffsetDirective = true;
|
NeedsDwarfSectionOffsetDirective = true;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCAsmInfoMicrosoft::anchor() { }
|
void MCAsmInfoMicrosoft::anchor() { }
|
||||||
|
@ -57,4 +57,6 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() {
|
|||||||
HasNoDeadStrip = true;
|
HasNoDeadStrip = true;
|
||||||
|
|
||||||
DwarfUsesRelocationsAcrossSections = false;
|
DwarfUsesRelocationsAcrossSections = false;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,8 @@ AArch64ELFMCAsmInfo::AArch64ELFMCAsmInfo() {
|
|||||||
|
|
||||||
// Exceptions handling
|
// Exceptions handling
|
||||||
ExceptionsType = ExceptionHandling::DwarfCFI;
|
ExceptionsType = ExceptionHandling::DwarfCFI;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pin the vtable to this file.
|
// Pin the vtable to this file.
|
||||||
|
@ -29,6 +29,8 @@ ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin() {
|
|||||||
|
|
||||||
// Exceptions handling
|
// Exceptions handling
|
||||||
ExceptionsType = ExceptionHandling::SjLj;
|
ExceptionsType = ExceptionHandling::SjLj;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARMELFMCAsmInfo::anchor() { }
|
void ARMELFMCAsmInfo::anchor() { }
|
||||||
@ -50,4 +52,6 @@ ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
|
|||||||
|
|
||||||
// foo(plt) instead of foo@plt
|
// foo(plt) instead of foo@plt
|
||||||
UseParensForSymbolVariant = true;
|
UseParensForSymbolVariant = true;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
@ -38,11 +38,13 @@ PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(bool is64Bit, const Triple& T) {
|
|||||||
// rather than OS version
|
// rather than OS version
|
||||||
if (T.isMacOSX() && T.isMacOSXVersionLT(10, 6))
|
if (T.isMacOSX() && T.isMacOSXVersionLT(10, 6))
|
||||||
HasWeakDefCanBeHiddenDirective = false;
|
HasWeakDefCanBeHiddenDirective = false;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PPCLinuxMCAsmInfo::anchor() { }
|
void PPCLinuxMCAsmInfo::anchor() { }
|
||||||
|
|
||||||
PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
|
PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit, const Triple& T) {
|
||||||
if (is64Bit) {
|
if (is64Bit) {
|
||||||
PointerSize = CalleeSaveStackSlotSize = 8;
|
PointerSize = CalleeSaveStackSlotSize = 8;
|
||||||
}
|
}
|
||||||
@ -71,5 +73,9 @@ PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit) {
|
|||||||
ZeroDirective = "\t.space\t";
|
ZeroDirective = "\t.space\t";
|
||||||
Data64bitsDirective = is64Bit ? "\t.quad\t" : 0;
|
Data64bitsDirective = is64Bit ? "\t.quad\t" : 0;
|
||||||
AssemblerDialect = 1; // New-Style mnemonics.
|
AssemblerDialect = 1; // New-Style mnemonics.
|
||||||
|
|
||||||
|
if (T.getOS() == llvm::Triple::FreeBSD ||
|
||||||
|
(T.getOS() == llvm::Triple::NetBSD && !is64Bit))
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class Triple;
|
|||||||
class PPCLinuxMCAsmInfo : public MCAsmInfoELF {
|
class PPCLinuxMCAsmInfo : public MCAsmInfoELF {
|
||||||
virtual void anchor();
|
virtual void anchor();
|
||||||
public:
|
public:
|
||||||
explicit PPCLinuxMCAsmInfo(bool is64Bit);
|
explicit PPCLinuxMCAsmInfo(bool is64Bit, const Triple&);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
@ -75,7 +75,7 @@ static MCAsmInfo *createPPCMCAsmInfo(const MCRegisterInfo &MRI, StringRef TT) {
|
|||||||
if (TheTriple.isOSDarwin())
|
if (TheTriple.isOSDarwin())
|
||||||
MAI = new PPCMCAsmInfoDarwin(isPPC64, TheTriple);
|
MAI = new PPCMCAsmInfoDarwin(isPPC64, TheTriple);
|
||||||
else
|
else
|
||||||
MAI = new PPCLinuxMCAsmInfo(isPPC64);
|
MAI = new PPCLinuxMCAsmInfo(isPPC64, TheTriple);
|
||||||
|
|
||||||
// Initial state of the frame pointer is R1.
|
// Initial state of the frame pointer is R1.
|
||||||
unsigned Reg = isPPC64 ? PPC::X1 : PPC::R1;
|
unsigned Reg = isPPC64 ? PPC::X1 : PPC::R1;
|
||||||
|
@ -42,6 +42,9 @@ SparcELFMCAsmInfo::SparcELFMCAsmInfo(StringRef TT) {
|
|||||||
|
|
||||||
SunStyleELFSectionSwitchSyntax = true;
|
SunStyleELFSectionSwitchSyntax = true;
|
||||||
UsesELFSectionDirectiveForBSS = true;
|
UsesELFSectionDirectiveForBSS = true;
|
||||||
|
|
||||||
|
if (TheTriple.getOS() == llvm::Triple::Solaris)
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MCExpr*
|
const MCExpr*
|
||||||
|
@ -76,6 +76,8 @@ X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(const Triple &T) {
|
|||||||
// version in use. From at least >= ld64-97.17 (Xcode 3.2.6) the abs-ified
|
// version in use. From at least >= ld64-97.17 (Xcode 3.2.6) the abs-ified
|
||||||
// FDE relocs may be used.
|
// FDE relocs may be used.
|
||||||
DwarfFDESymbolsUseAbsDiff = T.isMacOSX() && !T.isMacOSXVersionLT(10, 6);
|
DwarfFDESymbolsUseAbsDiff = T.isMacOSX() && !T.isMacOSXVersionLT(10, 6);
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
X86_64MCAsmInfoDarwin::X86_64MCAsmInfoDarwin(const Triple &Triple)
|
X86_64MCAsmInfoDarwin::X86_64MCAsmInfoDarwin(const Triple &Triple)
|
||||||
@ -114,6 +116,10 @@ X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &T) {
|
|||||||
if ((T.getOS() == Triple::OpenBSD || T.getOS() == Triple::Bitrig) &&
|
if ((T.getOS() == Triple::OpenBSD || T.getOS() == Triple::Bitrig) &&
|
||||||
T.getArch() == Triple::x86)
|
T.getArch() == Triple::x86)
|
||||||
Data64bitsDirective = 0;
|
Data64bitsDirective = 0;
|
||||||
|
|
||||||
|
// Always enable the integrated assembler by default.
|
||||||
|
// Clang also enabled it when the OS is Solaris but that is redundant here.
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MCExpr *
|
const MCExpr *
|
||||||
@ -144,6 +150,8 @@ X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft(const Triple &Triple) {
|
|||||||
TextAlignFillValue = 0x90;
|
TextAlignFillValue = 0x90;
|
||||||
|
|
||||||
AllowAtInName = true;
|
AllowAtInName = true;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void X86MCAsmInfoGNUCOFF::anchor() { }
|
void X86MCAsmInfoGNUCOFF::anchor() { }
|
||||||
@ -158,4 +166,6 @@ X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
|
|||||||
|
|
||||||
// Exceptions handling
|
// Exceptions handling
|
||||||
ExceptionsType = ExceptionHandling::DwarfCFI;
|
ExceptionsType = ExceptionHandling::DwarfCFI;
|
||||||
|
|
||||||
|
UseIntegratedAssembler = true;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
;RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon < %s | FileCheck %s
|
;RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -no-integrated-as < %s | FileCheck %s
|
||||||
|
|
||||||
define i64 @test_inline_constraint_r(i64 %base, i32 %offset) {
|
define i64 @test_inline_constraint_r(i64 %base, i32 %offset) {
|
||||||
; CHECK-LABEL: test_inline_constraint_r:
|
; CHECK-LABEL: test_inline_constraint_r:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -mtriple=aarch64-none-linux-gnu -relocation-model=pic < %s | FileCheck %s
|
; RUN: llc -mtriple=aarch64-none-linux-gnu -relocation-model=pic -no-integrated-as < %s | FileCheck %s
|
||||||
|
|
||||||
@var_simple = hidden global i32 0
|
@var_simple = hidden global i32 0
|
||||||
@var_got = global i32 0
|
@var_got = global i32 0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=arm | grep "swi 107"
|
; RUN: llc < %s -march=arm -no-integrated-as | grep "swi 107"
|
||||||
|
|
||||||
define i32 @_swilseek(i32) nounwind {
|
define i32 @_swilseek(i32) nounwind {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s
|
; RUN: llc < %s -march=arm -mattr=+vfp2 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
define i32 @foo(float %scale, float %scale2) nounwind {
|
define i32 @foo(float %scale, float %scale2) nounwind {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -O0 -relocation-model=pic -disable-fp-elim
|
; RUN: llc < %s -O0 -relocation-model=pic -disable-fp-elim -no-integrated-as
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64-n32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64-n32"
|
||||||
target triple = "armv6-apple-darwin10"
|
target triple = "armv6-apple-darwin10"
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -O3 -mtriple=arm-linux-gnueabi | FileCheck %s
|
; RUN: llc < %s -O3 -mtriple=arm-linux-gnueabi -no-integrated-as | FileCheck %s
|
||||||
; RUN: llc -mtriple=thumbv7-none-linux-gnueabi -verify-machineinstrs < %s | FileCheck %s
|
; RUN: llc -mtriple=thumbv7-none-linux-gnueabi -verify-machineinstrs -no-integrated-as < %s | FileCheck %s
|
||||||
; check if regs are passing correctly
|
; check if regs are passing correctly
|
||||||
define void @i64_write(i64* %p, i64 %val) nounwind {
|
define void @i64_write(i64* %p, i64 %val) nounwind {
|
||||||
; CHECK-LABEL: i64_write:
|
; CHECK-LABEL: i64_write:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=arm
|
; RUN: llc < %s -march=arm -no-integrated-as
|
||||||
|
|
||||||
; Test ARM-mode "I" constraint, for any Data Processing immediate.
|
; Test ARM-mode "I" constraint, for any Data Processing immediate.
|
||||||
define i32 @testI(i32 %x) {
|
define i32 @testI(i32 %x) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=arm -float-abi=soft -mattr=+neon,+v6t2 | FileCheck %s
|
; RUN: llc < %s -march=arm -float-abi=soft -mattr=+neon,+v6t2 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; Radar 7449043
|
; Radar 7449043
|
||||||
%struct.int32x4_t = type { <4 x i32> }
|
%struct.int32x4_t = type { <4 x i32> }
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=arm
|
; RUN: llc < %s -march=arm -no-integrated-as
|
||||||
; ModuleID = 'mult-alt-generic.c'
|
; ModuleID = 'mult-alt-generic.c'
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32"
|
||||||
target triple = "arm"
|
target triple = "arm"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -relocation-model=pic -disable-fp-elim -mcpu=cortex-a8 -pre-RA-sched=source | FileCheck %s
|
; RUN: llc < %s -relocation-model=pic -disable-fp-elim -mcpu=cortex-a8 -pre-RA-sched=source -no-integrated-as | FileCheck %s
|
||||||
target triple = "thumbv7-apple-ios"
|
target triple = "thumbv7-apple-ios"
|
||||||
; <rdar://problem/10032939>
|
; <rdar://problem/10032939>
|
||||||
;
|
;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
; XFAIL: sparc-sun-solaris2
|
; XFAIL: sparc-sun-solaris2
|
||||||
; PR1308
|
; PR1308
|
||||||
; PR1557
|
; PR1557
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
|
|
||||||
; Test that we can have an "X" output constraint.
|
; Test that we can have an "X" output constraint.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
|
|
||||||
%struct..0anon = type { [100 x i32] }
|
%struct..0anon = type { [100 x i32] }
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
; PR1133
|
; PR1133
|
||||||
; XFAIL: hexagon
|
; XFAIL: hexagon
|
||||||
define void @test(i32* %X) nounwind {
|
define void @test(i32* %X) nounwind {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s | FileCheck %s
|
; RUN: llc -no-integrated-as < %s | FileCheck %s
|
||||||
|
|
||||||
define void @test() {
|
define void @test() {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -O2 < %s | FileCheck %s
|
; RUN: llc -O2 -no-integrated-as < %s | FileCheck %s
|
||||||
|
|
||||||
@G = common global i32 0, align 4
|
@G = common global i32 0, align 4
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s | grep "foo 0 0"
|
; RUN: llc -no-integrated-as < %s | grep "foo 0 0"
|
||||||
|
|
||||||
define void @bar() nounwind {
|
define void @bar() nounwind {
|
||||||
tail call void asm sideeffect "foo ${:uid} ${:uid}", ""() nounwind
|
tail call void asm sideeffect "foo ${:uid} ${:uid}", ""() nounwind
|
||||||
|
17
test/CodeGen/Generic/mature-mc-support.ll
Normal file
17
test/CodeGen/Generic/mature-mc-support.ll
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
; Test that inline assembly is parsed by the MC layer when MC support is mature
|
||||||
|
; (even when the output is assembly).
|
||||||
|
|
||||||
|
; RUN: not llc -march=aarch64 < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=aarch64 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=arm < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=arm -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=thumb < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=thumb -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=x86 < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=x86 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=x86-64 < %s 2>&1 | FileCheck %s
|
||||||
|
; RUN: not llc -march=x86-64 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
|
||||||
|
module asm " .this_directive_is_very_unlikely_to_exist"
|
||||||
|
|
||||||
|
; CHECK: LLVM ERROR: Error parsing inline asm
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8.8.0 | grep "foo r3, r4"
|
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8.8.0 -no-integrated-as | grep "foo r3, r4"
|
||||||
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8.8.0 | grep "bari r3, 47"
|
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8.8.0 -no-integrated-as | grep "bari r3, 47"
|
||||||
|
|
||||||
; PR1351
|
; PR1351
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
; PR1382
|
; PR1382
|
||||||
|
|
||||||
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
|
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=thumb
|
; RUN: llc < %s -march=thumb -no-integrated-as
|
||||||
|
|
||||||
; Test Thumb-mode "I" constraint, for ADD immediate.
|
; Test Thumb-mode "I" constraint, for ADD immediate.
|
||||||
define i32 @testI(i32 %x) {
|
define i32 @testI(i32 %x) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
; PR833
|
; PR833
|
||||||
|
|
||||||
@G = weak global i32 0 ; <i32*> [#uses=3]
|
@G = weak global i32 0 ; <i32*> [#uses=3]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; PR850
|
; PR850
|
||||||
; RUN: llc < %s -march=x86 -x86-asm-syntax=att | FileCheck %s
|
; RUN: llc < %s -march=x86 -x86-asm-syntax=att -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; CHECK: {{movl 4[(]%eax[)],%ebp}}
|
; CHECK: {{movl 4[(]%eax[)],%ebp}}
|
||||||
; CHECK: {{movl 0[(]%eax[)], %ebx}}
|
; CHECK: {{movl 0[(]%eax[)], %ebx}}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 | grep "mov %gs:72, %eax"
|
; RUN: llc < %s -march=x86 -no-integrated-as | grep "mov %gs:72, %eax"
|
||||||
target datalayout = "e-p:32:32"
|
target datalayout = "e-p:32:32"
|
||||||
target triple = "i686-apple-darwin9"
|
target triple = "i686-apple-darwin9"
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mcpu=yonah -march=x86 | FileCheck %s
|
; RUN: llc < %s -mcpu=yonah -march=x86 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
target datalayout = "e-p:32:32"
|
target datalayout = "e-p:32:32"
|
||||||
target triple = "i686-apple-darwin9"
|
target triple = "i686-apple-darwin9"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s
|
; RUN: llc -no-integrated-as < %s
|
||||||
; PR1748
|
; PR1748
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||||
target triple = "x86_64-unknown-linux-gnu"
|
target triple = "x86_64-unknown-linux-gnu"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
|
; RUN: llc -no-integrated-as < %s -mtriple=x86_64-unknown-linux-gnu
|
||||||
; PR1767
|
; PR1767
|
||||||
|
|
||||||
define void @xor_sse_2(i64 %bytes, i64* %p1, i64* %p2) {
|
define void @xor_sse_2(i64 %bytes, i64* %p1, i64* %p2) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -relocation-model=static | FileCheck %s
|
; RUN: llc < %s -relocation-model=static -no-integrated-as | FileCheck %s
|
||||||
; PR1761
|
; PR1761
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||||
target triple = "x86_64-pc-linux"
|
target triple = "x86_64-pc-linux"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s | FileCheck %s
|
; RUN: llc -no-integrated-as < %s | FileCheck %s
|
||||||
; PR2078
|
; PR2078
|
||||||
; The clobber list says that "ax" is clobbered. Make sure that eax isn't
|
; The clobber list says that "ax" is clobbered. Make sure that eax isn't
|
||||||
; allocated to the input/output register.
|
; allocated to the input/output register.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
|
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
|
||||||
target triple = "i386-pc-linux-gnu"
|
target triple = "i386-pc-linux-gnu"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s | FileCheck %s
|
; RUN: llc -no-integrated-as < %s | FileCheck %s
|
||||||
; rdar://5720231
|
; rdar://5720231
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
||||||
target triple = "i386-apple-darwin8"
|
target triple = "i386-apple-darwin8"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
|
; RUN: llc < %s -march=x86 -regalloc=fast -optimize-regalloc=0 -no-integrated-as | FileCheck %s
|
||||||
; RUN: llc < %s -march=x86 -regalloc=basic | FileCheck %s
|
; RUN: llc < %s -march=x86 -regalloc=basic -no-integrated-as | FileCheck %s
|
||||||
; RUN: llc < %s -march=x86 -regalloc=greedy | FileCheck %s
|
; RUN: llc < %s -march=x86 -regalloc=greedy -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; The 1st, 2nd, 3rd and 5th registers must all be different. The registers
|
; The 1st, 2nd, 3rd and 5th registers must all be different. The registers
|
||||||
; referenced in the 4th and 6th operands must not be the same as the 1st or 5th
|
; referenced in the 4th and 6th operands must not be the same as the 1st or 5th
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
; RUN: llc < %s -march=x86-64
|
; RUN: llc < %s -march=x86-64 -no-integrated-as
|
||||||
|
|
||||||
define void @test(i64 %x) nounwind {
|
define void @test(i64 %x) nounwind {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
; RUN: llc < %s -march=x86-64
|
; RUN: llc < %s -march=x86-64 -no-integrated-as
|
||||||
|
|
||||||
; from gcc.c-torture/compile/920520-1.c
|
; from gcc.c-torture/compile/920520-1.c
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 | FileCheck %s
|
; RUN: llc < %s -march=x86 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; ModuleID = 'shant.c'
|
; ModuleID = 'shant.c'
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=i386-apple-darwin
|
; RUN: llc < %s -mtriple=i386-apple-darwin -no-integrated-as
|
||||||
; rdar://6781755
|
; rdar://6781755
|
||||||
; PR3934
|
; PR3934
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -relocation-model=static | FileCheck %s
|
; RUN: llc < %s -relocation-model=static -no-integrated-as | FileCheck %s
|
||||||
; PR4152
|
; PR4152
|
||||||
|
|
||||||
; CHECK: {{1: ._pv_cpu_ops[+]8}}
|
; CHECK: {{1: ._pv_cpu_ops[+]8}}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s | FileCheck %s
|
; RUN: llc -no-integrated-as < %s | FileCheck %s
|
||||||
; ModuleID = '4964.c'
|
; ModuleID = '4964.c'
|
||||||
; PR 4964
|
; PR 4964
|
||||||
; Registers other than RAX, RCX are OK, but they must be different.
|
; Registers other than RAX, RCX are OK, but they must be different.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -no-integrated-as | FileCheck %s
|
||||||
; pr5391
|
; pr5391
|
||||||
|
|
||||||
define void @t() nounwind ssp {
|
define void @t() nounwind ssp {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -O0 -regalloc=fast | FileCheck %s
|
; RUN: llc < %s -O0 -regalloc=fast -no-integrated-as | FileCheck %s
|
||||||
; PR6520
|
; PR6520
|
||||||
|
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -regalloc=fast -optimize-regalloc=0 < %s | FileCheck %s
|
; RUN: llc -regalloc=fast -optimize-regalloc=0 -no-integrated-as < %s | FileCheck %s
|
||||||
; PR7382
|
; PR7382
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
||||||
target triple = "x86_64-unknown-linux-gnu"
|
target triple = "x86_64-unknown-linux-gnu"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -disable-fp-elim -mtriple=i686-pc-mingw32
|
; RUN: llc < %s -disable-fp-elim -mtriple=i686-pc-mingw32 -no-integrated-as
|
||||||
|
|
||||||
%struct.__SEH2Frame = type {}
|
%struct.__SEH2Frame = type {}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 -O0 | FileCheck %s
|
; RUN: llc < %s -march=x86 -O0 -no-integrated-as | FileCheck %s
|
||||||
; PR7509
|
; PR7509
|
||||||
target triple = "i386-apple-darwin10"
|
target triple = "i386-apple-darwin10"
|
||||||
%asmtype = type { i32, i8*, i32, i32 }
|
%asmtype = type { i32, i8*, i32, i32 }
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin11 | FileCheck %s
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin11 -no-integrated-as | FileCheck %s
|
||||||
; Any register is OK for %0, but it must be a register, not memory.
|
; Any register is OK for %0, but it must be a register, not memory.
|
||||||
|
|
||||||
define i32 @foo() nounwind ssp {
|
define i32 @foo() nounwind ssp {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
define void @foo() nounwind ssp {
|
define void @foo() nounwind ssp {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -no-integrated-as | FileCheck %s
|
||||||
; PR 4752
|
; PR 4752
|
||||||
|
|
||||||
@n = global i32 0 ; <i32*> [#uses=2]
|
@n = global i32 0 ; <i32*> [#uses=2]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -no-integrated-as | FileCheck %s
|
||||||
; PR 7528
|
; PR 7528
|
||||||
; formerly crashed
|
; formerly crashed
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -verify-regalloc
|
; RUN: llc < %s -verify-regalloc -no-integrated-as
|
||||||
; PR11125
|
; PR11125
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
|
||||||
target triple = "x86_64-apple-macosx10.7"
|
target triple = "x86_64-apple-macosx10.7"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: opt < %s -std-compile-opts | llc
|
; RUN: opt < %s -std-compile-opts | llc -no-integrated-as
|
||||||
; ModuleID = 'block12.c'
|
; ModuleID = 'block12.c'
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
||||||
target triple = "i686-apple-darwin8"
|
target triple = "i686-apple-darwin8"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 -relocation-model=static | FileCheck %s
|
; RUN: llc < %s -march=x86 -relocation-model=static -no-integrated-as | FileCheck %s
|
||||||
; PR882
|
; PR882
|
||||||
|
|
||||||
target datalayout = "e-p:32:32"
|
target datalayout = "e-p:32:32"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -mtriple=x86_64-pc-linux-gnu %s -o - | FileCheck %s
|
; RUN: llc -mtriple=x86_64-pc-linux-gnu %s -o - -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; C code this came from
|
; C code this came from
|
||||||
;bool cas(float volatile *p, float *expected, float desired) {
|
;bool cas(float volatile *p, float *expected, float desired) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -fast-isel -fast-isel-abort -verify-machineinstrs -march=x86 -mattr=sse2
|
; RUN: llc < %s -fast-isel -fast-isel-abort -verify-machineinstrs -march=x86 -mattr=sse2 -no-integrated-as
|
||||||
; RUN: llc < %s -fast-isel -fast-isel-abort -verify-machineinstrs -mtriple=x86_64-apple-darwin10
|
; RUN: llc < %s -fast-isel -fast-isel-abort -verify-machineinstrs -mtriple=x86_64-apple-darwin10 -no-integrated-as
|
||||||
|
|
||||||
; This tests very minimal fast-isel functionality.
|
; This tests very minimal fast-isel functionality.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=i386-apple-macosx10.6.7 -mattr=+sse2 | FileCheck %s
|
; RUN: llc < %s -mtriple=i386-apple-macosx10.6.7 -mattr=+sse2 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; Simple test to make sure folding for special constants (like float zero)
|
; Simple test to make sure folding for special constants (like float zero)
|
||||||
; isn't completely broken.
|
; isn't completely broken.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=x86-64 < %s | FileCheck %s
|
; RUN: llc -march=x86-64 -no-integrated-as < %s | FileCheck %s
|
||||||
; PR3701
|
; PR3701
|
||||||
|
|
||||||
define i64 @t(i64* %arg) nounwind {
|
define i64 @t(i64* %arg) nounwind {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mcpu=generic -mtriple=i386-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mcpu=generic -mtriple=i386-apple-darwin -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
; There should be no stack manipulations between the inline asm and ret.
|
; There should be no stack manipulations between the inline asm and ret.
|
||||||
; CHECK: test1
|
; CHECK: test1
|
||||||
|
@ -9,4 +9,4 @@ entry:
|
|||||||
}
|
}
|
||||||
|
|
||||||
; CHECK: zed
|
; CHECK: zed
|
||||||
; CHECK: movq %mm2,foobar+8(%rip)
|
; CHECK: movq %mm2, foobar+8(%rip)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 | grep " 37"
|
; RUN: llc < %s -march=x86 -no-integrated-as | grep " 37"
|
||||||
; rdar://7008959
|
; rdar://7008959
|
||||||
|
|
||||||
define void @bork() nounwind {
|
define void @bork() nounwind {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
; PR2094
|
; PR2094
|
||||||
; RUN: llc < %s -march=x86-64 | grep movslq
|
; RUN: llc < %s -march=x86-64 -no-integrated-as | grep movslq
|
||||||
; RUN: llc < %s -march=x86-64 | grep addps
|
; RUN: llc < %s -march=x86-64 -no-integrated-as | grep addps
|
||||||
; RUN: llc < %s -march=x86-64 | grep paddd
|
; RUN: llc < %s -march=x86-64 -no-integrated-as | grep paddd
|
||||||
; RUN: llc < %s -march=x86-64 | not grep movq
|
; RUN: llc < %s -march=x86-64 -no-integrated-as | not grep movq
|
||||||
|
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||||
target triple = "x86_64-apple-darwin8"
|
target triple = "x86_64-apple-darwin8"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86-64 -mattr=+avx
|
; RUN: llc < %s -march=x86-64 -mattr=+avx -no-integrated-as
|
||||||
; rdar://7066579
|
; rdar://7066579
|
||||||
|
|
||||||
%0 = type { i64, i64, i64, i64, i64 } ; type %0
|
%0 = type { i64, i64, i64, i64, i64 } ; type %0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -march=x86 < %s | FileCheck %s
|
; RUN: llc -march=x86 -no-integrated-as < %s | FileCheck %s
|
||||||
|
|
||||||
declare void @bar(i32* %junk)
|
declare void @bar(i32* %junk)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -mtriple=i386-apple-darwin9 -O0 -optimize-regalloc -regalloc=basic | FileCheck %s
|
; RUN: llc < %s -mtriple=i386-apple-darwin9 -O0 -optimize-regalloc -regalloc=basic -no-integrated-as | FileCheck %s
|
||||||
; rdar://6992609
|
; rdar://6992609
|
||||||
|
|
||||||
; CHECK: movl [[EDX:%e..]], 4(%esp)
|
; CHECK: movl [[EDX:%e..]], 4(%esp)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 -mcpu=yonah
|
; RUN: llc < %s -march=x86 -mcpu=yonah -no-integrated-as
|
||||||
|
|
||||||
define void @test1() {
|
define void @test1() {
|
||||||
tail call void asm sideeffect "ucomiss $0", "x"( float 0x41E0000000000000)
|
tail call void asm sideeffect "ucomiss $0", "x"( float 0x41E0000000000000)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
|
|
||||||
define i32 @test1() nounwind {
|
define i32 @test1() nounwind {
|
||||||
; Dest is AX, dest type = i32.
|
; Dest is AX, dest type = i32.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 -mcpu=core2 | FileCheck %s
|
; RUN: llc < %s -march=x86 -mcpu=core2 -no-integrated-as | FileCheck %s
|
||||||
|
|
||||||
define i32 @t1() nounwind {
|
define i32 @t1() nounwind {
|
||||||
entry:
|
entry:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86
|
; RUN: llc < %s -march=x86 -no-integrated-as
|
||||||
; ModuleID = 'mult-alt-generic.c'
|
; ModuleID = 'mult-alt-generic.c'
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
|
||||||
target triple = "i686"
|
target triple = "i686"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86-64
|
; RUN: llc < %s -march=x86-64 -no-integrated-as
|
||||||
; ModuleID = 'mult-alt-generic.c'
|
; ModuleID = 'mult-alt-generic.c'
|
||||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
||||||
target triple = "x86_64"
|
target triple = "x86_64"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc < %s -march=x86 -mattr=+sse2
|
; RUN: llc < %s -march=x86 -mattr=+sse2 -no-integrated-as
|
||||||
; ModuleID = 'mult-alt-x86.c'
|
; ModuleID = 'mult-alt-x86.c'
|
||||||
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
|
||||||
target triple = "i686-pc-win32"
|
target triple = "i686-pc-win32"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -asm-verbose=false -disable-branch-fold -disable-block-placement -disable-tail-duplicate -march=x86-64 -mcpu=nehalem < %s | FileCheck %s
|
; RUN: llc -asm-verbose=false -disable-branch-fold -disable-block-placement -disable-tail-duplicate -march=x86-64 -mcpu=nehalem -no-integrated-as < %s | FileCheck %s
|
||||||
; rdar://7236213
|
; rdar://7236213
|
||||||
;
|
;
|
||||||
; The scheduler's 2-address hack has been disabled, so there is
|
; The scheduler's 2-address hack has been disabled, so there is
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: opt < %s -std-compile-opts -o - | llc -o - | grep bork_directive | wc -l | grep 2
|
; RUN: opt < %s -std-compile-opts -o - | llc -no-integrated-as -o - | grep bork_directive | wc -l | grep 2
|
||||||
|
|
||||||
;; We don't want branch folding to fold asm directives.
|
;; We don't want branch folding to fold asm directives.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user