[llvm-commits] [llvm] r109434 - /llvm/trunk/lib/Target/X86/X86InstrInfo.td

Jim Grosbach grosbach at apple.com
Fri Jul 30 08:50:57 PDT 2010


Minor thing. Should work as-is, but the predicates should be using "&&" rather than "&".

-Jim

On Jul 26, 2010, at 2:01 PM, Bruno Cardoso Lopes wrote:

> Author: bruno
> Date: Mon Jul 26 16:01:18 2010
> New Revision: 109434
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=109434&view=rev
> Log:
> Temporary hack to let codegen assert or generate poor code in case
> we are using AVX and no AVX version of the desired intruction is present,
> this is better for incremental dev (without fallbacks it's easier to spot
> what's missing). Not sure this is the best hack thought (we can also disable
> all HasSSE* predicates by dinamically marking them 'false' if AVX is present)
> 
> 
> Modified:
>    llvm/trunk/lib/Target/X86/X86InstrInfo.td
> 
> Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=109434&r1=109433&r2=109434&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Mon Jul 26 16:01:18 2010
> @@ -348,14 +348,19 @@
> // X86 Instruction Predicate Definitions.
> def HasCMov      : Predicate<"Subtarget->hasCMov()">;
> def NoCMov       : Predicate<"!Subtarget->hasCMov()">;
> -def HasMMX       : Predicate<"Subtarget->hasMMX()">;
> -def HasSSE1      : Predicate<"Subtarget->hasSSE1()">;
> -def HasSSE2      : Predicate<"Subtarget->hasSSE2()">;
> -def HasSSE3      : Predicate<"Subtarget->hasSSE3()">;
> -def HasSSSE3     : Predicate<"Subtarget->hasSSSE3()">;
> -def HasSSE41     : Predicate<"Subtarget->hasSSE41()">;
> -def HasSSE42     : Predicate<"Subtarget->hasSSE42()">;
> -def HasSSE4A     : Predicate<"Subtarget->hasSSE4A()">;
> +
> +// FIXME: temporary hack to let codegen assert or generate poor code in case
> +// no AVX version of the desired intructions is present, this is better for
> +// incremental dev (without fallbacks it's easier to spot what's missing)
> +def HasMMX       : Predicate<"Subtarget->hasMMX() & !Subtarget->hasAVX()">;
> +def HasSSE1      : Predicate<"Subtarget->hasSSE1() & !Subtarget->hasAVX()">;
> +def HasSSE2      : Predicate<"Subtarget->hasSSE2() & !Subtarget->hasAVX()">;
> +def HasSSE3      : Predicate<"Subtarget->hasSSE3() & !Subtarget->hasAVX()">;
> +def HasSSSE3     : Predicate<"Subtarget->hasSSSE3() & !Subtarget->hasAVX()">;
> +def HasSSE41     : Predicate<"Subtarget->hasSSE41() & !Subtarget->hasAVX()">;
> +def HasSSE42     : Predicate<"Subtarget->hasSSE42() & !Subtarget->hasAVX()">;
> +def HasSSE4A     : Predicate<"Subtarget->hasSSE4A() & !Subtarget->hasAVX()">;
> +
> def HasAVX       : Predicate<"Subtarget->hasAVX()">;
> def HasCLMUL     : Predicate<"Subtarget->hasCLMUL()">;
> def HasFMA3      : Predicate<"Subtarget->hasFMA3()">;
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list