Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Anton Korobeynikov
> One question: are there any cpus that support "3dnowa" but not  
> "3dnow"?
I definitely think, that no.

-- 
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Chris Lattner
>
>> Does 64-bit imply sse2 or sse3?
>>
> Again, I didn't know. :-) If they do, I can fix it.

X86Subtarget.cpp says that SSE2 is always available if the cpu is 64- 
bit.  Can the logic in that file be simplified with your changes?   
(is it ever possible to have SSE2 bit set but not SSE1 now?)

-Chris

> -bw
>
>> -Chris
>>
>>>
>>> ---
>>> Diffs of the changes:  (+21 -17)
>>>
>>>  X86.td |   38 +-
>>>  1 files changed, 21 insertions(+), 17 deletions(-)
>>>
>>>
>>> Index: llvm/lib/Target/X86/X86.td
>>> diff -u llvm/lib/Target/X86/X86.td:1.31 llvm/lib/Target/X86/X86.td:
>>> 1.32
>>> --- llvm/lib/Target/X86/X86.td:1.31 Wed Apr 25 16:31:48 2007
>>> +++ llvm/lib/Target/X86/X86.td  Fri May  4 15:38:40 2007
>>> @@ -18,24 +18,28 @@
>>>
>>>  //
>>> ===- 
>>> -
>>> -
>>> ---===//
>>>  // X86 Subtarget features.
>>> -//
>>> +//
>>> ===- 
>>> -
>>> -
>>> ---===//
>>>
>>> -def Feature64Bit : SubtargetFeature<"64bit", "HasX86_64",
>>> "true",
>>> -"Support 64-bit
>>> instructions">;
>>> -def FeatureMMX   : SubtargetFeature<"mmx","X86SSELevel", "MMX",
>>> -"Enable MMX instructions">;
>>> -def FeatureSSE1  : SubtargetFeature<"sse", "X86SSELevel",
>>> "SSE1",
>>> -"Enable SSE instructions">;
>>> -def FeatureSSE2  : SubtargetFeature<"sse2", "X86SSELevel",
>>> "SSE2",
>>> -"Enable SSE2  
>>> instructions">;
>>> -def FeatureSSE3  : SubtargetFeature<"sse3", "X86SSELevel",
>>> "SSE3",
>>> -"Enable SSE3  
>>> instructions">;
>>> -def FeatureSSSE3 : SubtargetFeature<"ssse3", "X86SSELevel",
>>> "SSSE3",
>>> -"Enable SSSE3
>>> instructions">;
>>> -def Feature3DNow : SubtargetFeature<"3dnow", "X863DNowLevel",
>>> "ThreeDNow",
>>> -"Enable 3DNow!
>>> instructions">;
>>> -def Feature3DNowA: SubtargetFeature<"3dnowa", "X863DNowLevel",
>>> "ThreeDNowA",
>>> -"Enable 3DNow! Athlon
>>> instructions">;
>>> +def Feature64Bit   : SubtargetFeature<"64bit", "HasX86_64", "true",
>>> +  "Support 64-bit
>>> instructions">;
>>> +def FeatureMMX : SubtargetFeature<"mmx","X86SSELevel", "MMX",
>>> +  "Enable MMX instructions">;
>>> +def FeatureSSE1: SubtargetFeature<"sse", "X86SSELevel", "SSE1",
>>> +  "Enable SSE instructions",
>>> +  [FeatureMMX]>;
>>> +def FeatureSSE2: SubtargetFeature<"sse2", "X86SSELevel",  
>>> "SSE2",
>>> +  "Enable SSE2 instructions",
>>> +  [FeatureSSE1]>;
>>> +def FeatureSSE3: SubtargetFeature<"sse3", "X86SSELevel",  
>>> "SSE3",
>>> +  "Enable SSE3 instructions",
>>> +  [FeatureSSE2]>;
>>> +def FeatureSSSE3   : SubtargetFeature<"ssse3", "X86SSELevel",
>>> "SSSE3",
>>> +  "Enable SSSE3 instructions",
>>> +  [FeatureSSE3]>;
>>> +def Feature3DNow   : SubtargetFeature<"3dnow", "X863DNowLevel",
>>> "ThreeDNow",
>>> +  "Enable 3DNow!  
>>> instructions">;
>>> +def Feature3DNowA  : SubtargetFeature<"3dnowa", "X863DNowLevel",
>>> "ThreeDNowA",
>>> +  "Enable 3DNow! Athlon
>>> instructions">;
>>>
>>>  //
>>> ===- 
>>> -
>>> -
>>> ---===//
>>>  // X86 processors supported.
>>>
>>>
>>>
>>> ___
>>> llvm-commits mailing list
>>> llvm-commits@cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>> ___
>> llvm-commits mailing list
>> llvm-commits@cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Chris Lattner

On May 5, 2007, at 1:43 PM, Bill Wendling wrote:

> On May 5, 2007, at 1:32 PM, Anton Korobeynikov wrote:
>
>> Hello, Bill.
>>
>>> I didn't know if they should or not. Should they? :-)
>> I can check anything 3dnow-related in hardware. Do you have some
>> testcase?
>>
> Not for 3dnow...In truth, our support for 3dnow is lacking. We don't
> have a lot of the builtins for it supported.

One question: are there any cpus that support "3dnowa" but not  
"3dnow"?  I would guess not.

-Chris
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Bill Wendling
On May 5, 2007, at 1:32 PM, Anton Korobeynikov wrote:

> Hello, Bill.
>
>> I didn't know if they should or not. Should they? :-)
> I can check anything 3dnow-related in hardware. Do you have some
> testcase?
>
Not for 3dnow...In truth, our support for 3dnow is lacking. We don't  
have a lot of the builtins for it supported.

-bw

___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Anton Korobeynikov
Hello, Bill.

> I didn't know if they should or not. Should they? :-)
I can check anything 3dnow-related in hardware. Do you have some
testcase?

-- 
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.


___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Bill Wendling

On May 5, 2007, at 10:56 AM, Chris Lattner wrote:

> On May 4, 2007, at 1:39 PM, Bill Wendling wrote:
>> Add an "implies" field to features. This indicates that, if the
>> current
>> feature is set, then the features in the implied list should be set
>> also.
>> The opposite is also enforced: if a feature in the implied list
>> isn't set,
>> then the feature that owns that implies list shouldn't be set either.
>
> Looks good.  Does 3dnowa imply 3dnow?
>
I didn't know if they should or not. Should they? :-)

> Does 64-bit imply sse2 or sse3?
>
Again, I didn't know. :-) If they do, I can fix it.

-bw

> -Chris
>
>>
>> ---
>> Diffs of the changes:  (+21 -17)
>>
>>  X86.td |   38 +-
>>  1 files changed, 21 insertions(+), 17 deletions(-)
>>
>>
>> Index: llvm/lib/Target/X86/X86.td
>> diff -u llvm/lib/Target/X86/X86.td:1.31 llvm/lib/Target/X86/X86.td:
>> 1.32
>> --- llvm/lib/Target/X86/X86.td:1.31  Wed Apr 25 16:31:48 2007
>> +++ llvm/lib/Target/X86/X86.td   Fri May  4 15:38:40 2007
>> @@ -18,24 +18,28 @@
>>
>>  //
>> ===-- 
>> -
>> ---===//
>>  // X86 Subtarget features.
>> -//
>> +//
>> ===-- 
>> -
>> ---===//
>>
>> -def Feature64Bit : SubtargetFeature<"64bit", "HasX86_64",  
>> "true",
>> -"Support 64-bit
>> instructions">;
>> -def FeatureMMX   : SubtargetFeature<"mmx","X86SSELevel", "MMX",
>> -"Enable MMX instructions">;
>> -def FeatureSSE1  : SubtargetFeature<"sse", "X86SSELevel",  
>> "SSE1",
>> -"Enable SSE instructions">;
>> -def FeatureSSE2  : SubtargetFeature<"sse2", "X86SSELevel",
>> "SSE2",
>> -"Enable SSE2 instructions">;
>> -def FeatureSSE3  : SubtargetFeature<"sse3", "X86SSELevel",
>> "SSE3",
>> -"Enable SSE3 instructions">;
>> -def FeatureSSSE3 : SubtargetFeature<"ssse3", "X86SSELevel",
>> "SSSE3",
>> -"Enable SSSE3  
>> instructions">;
>> -def Feature3DNow : SubtargetFeature<"3dnow", "X863DNowLevel",
>> "ThreeDNow",
>> -"Enable 3DNow!
>> instructions">;
>> -def Feature3DNowA: SubtargetFeature<"3dnowa", "X863DNowLevel",
>> "ThreeDNowA",
>> -"Enable 3DNow! Athlon
>> instructions">;
>> +def Feature64Bit   : SubtargetFeature<"64bit", "HasX86_64", "true",
>> +  "Support 64-bit  
>> instructions">;
>> +def FeatureMMX : SubtargetFeature<"mmx","X86SSELevel", "MMX",
>> +  "Enable MMX instructions">;
>> +def FeatureSSE1: SubtargetFeature<"sse", "X86SSELevel", "SSE1",
>> +  "Enable SSE instructions",
>> +  [FeatureMMX]>;
>> +def FeatureSSE2: SubtargetFeature<"sse2", "X86SSELevel", "SSE2",
>> +  "Enable SSE2 instructions",
>> +  [FeatureSSE1]>;
>> +def FeatureSSE3: SubtargetFeature<"sse3", "X86SSELevel", "SSE3",
>> +  "Enable SSE3 instructions",
>> +  [FeatureSSE2]>;
>> +def FeatureSSSE3   : SubtargetFeature<"ssse3", "X86SSELevel",
>> "SSSE3",
>> +  "Enable SSSE3 instructions",
>> +  [FeatureSSE3]>;
>> +def Feature3DNow   : SubtargetFeature<"3dnow", "X863DNowLevel",
>> "ThreeDNow",
>> +  "Enable 3DNow! instructions">;
>> +def Feature3DNowA  : SubtargetFeature<"3dnowa", "X863DNowLevel",
>> "ThreeDNowA",
>> +  "Enable 3DNow! Athlon
>> instructions">;
>>
>>  //
>> ===-- 
>> -
>> ---===//
>>  // X86 processors supported.
>>
>>
>>
>> ___
>> llvm-commits mailing list
>> llvm-commits@cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86.td

2007-05-05 Thread Chris Lattner
On May 4, 2007, at 1:39 PM, Bill Wendling wrote:
> Add an "implies" field to features. This indicates that, if the  
> current
> feature is set, then the features in the implied list should be set  
> also.
> The opposite is also enforced: if a feature in the implied list  
> isn't set,
> then the feature that owns that implies list shouldn't be set either.

Looks good.  Does 3dnowa imply 3dnow?

Does 64-bit imply sse2 or sse3?

-Chris

>
> ---
> Diffs of the changes:  (+21 -17)
>
>  X86.td |   38 +-
>  1 files changed, 21 insertions(+), 17 deletions(-)
>
>
> Index: llvm/lib/Target/X86/X86.td
> diff -u llvm/lib/Target/X86/X86.td:1.31 llvm/lib/Target/X86/X86.td: 
> 1.32
> --- llvm/lib/Target/X86/X86.td:1.31   Wed Apr 25 16:31:48 2007
> +++ llvm/lib/Target/X86/X86.tdFri May  4 15:38:40 2007
> @@ -18,24 +18,28 @@
>
>  // 
> ===--- 
> ---===//
>  // X86 Subtarget features.
> -//
> +// 
> ===--- 
> ---===//
>
> -def Feature64Bit : SubtargetFeature<"64bit", "HasX86_64", "true",
> -"Support 64-bit  
> instructions">;
> -def FeatureMMX   : SubtargetFeature<"mmx","X86SSELevel", "MMX",
> -"Enable MMX instructions">;
> -def FeatureSSE1  : SubtargetFeature<"sse", "X86SSELevel", "SSE1",
> -"Enable SSE instructions">;
> -def FeatureSSE2  : SubtargetFeature<"sse2", "X86SSELevel",  
> "SSE2",
> -"Enable SSE2 instructions">;
> -def FeatureSSE3  : SubtargetFeature<"sse3", "X86SSELevel",  
> "SSE3",
> -"Enable SSE3 instructions">;
> -def FeatureSSSE3 : SubtargetFeature<"ssse3", "X86SSELevel",  
> "SSSE3",
> -"Enable SSSE3 instructions">;
> -def Feature3DNow : SubtargetFeature<"3dnow", "X863DNowLevel",  
> "ThreeDNow",
> -"Enable 3DNow!  
> instructions">;
> -def Feature3DNowA: SubtargetFeature<"3dnowa", "X863DNowLevel",  
> "ThreeDNowA",
> -"Enable 3DNow! Athlon  
> instructions">;
> +def Feature64Bit   : SubtargetFeature<"64bit", "HasX86_64", "true",
> +  "Support 64-bit instructions">;
> +def FeatureMMX : SubtargetFeature<"mmx","X86SSELevel", "MMX",
> +  "Enable MMX instructions">;
> +def FeatureSSE1: SubtargetFeature<"sse", "X86SSELevel", "SSE1",
> +  "Enable SSE instructions",
> +  [FeatureMMX]>;
> +def FeatureSSE2: SubtargetFeature<"sse2", "X86SSELevel", "SSE2",
> +  "Enable SSE2 instructions",
> +  [FeatureSSE1]>;
> +def FeatureSSE3: SubtargetFeature<"sse3", "X86SSELevel", "SSE3",
> +  "Enable SSE3 instructions",
> +  [FeatureSSE2]>;
> +def FeatureSSSE3   : SubtargetFeature<"ssse3", "X86SSELevel",  
> "SSSE3",
> +  "Enable SSSE3 instructions",
> +  [FeatureSSE3]>;
> +def Feature3DNow   : SubtargetFeature<"3dnow", "X863DNowLevel",  
> "ThreeDNow",
> +  "Enable 3DNow! instructions">;
> +def Feature3DNowA  : SubtargetFeature<"3dnowa", "X863DNowLevel",  
> "ThreeDNowA",
> +  "Enable 3DNow! Athlon  
> instructions">;
>
>  // 
> ===--- 
> ---===//
>  // X86 processors supported.
>
>
>
> ___
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits