r250470 - Fix the subtarget features required by some x86 builtins.

Eric Christopher via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 16 00:34:45 PDT 2015


Lovely. Cc'ing Justin here. We'll need to figure out some change for these
builtins here if we need to have and as well as or.

(Why on earth are these builtins subject to two separate features? *sigh*
It's ridiculous.)

-eric

On Thu, Oct 15, 2015 at 11:59 PM Craig Topper <craig.topper at gmail.com>
wrote:

> Correct you avx512vl means it support 128 and 256-bit vectors. avx512bw
> means it supports byte and word elements. So you actually need both.
>
> On Thu, Oct 15, 2015 at 11:57 PM, Eric Christopher <echristo at gmail.com>
> wrote:
>
>> The comma separated list is currently represented as "one of these". I
>> couldn't parse your first sentence, for the avx512 ones are you saying that
>> it requires both and not just one of the options?
>>
>> -eric
>>
>> On Thu, Oct 15, 2015 at 11:55 PM Craig Topper <craig.topper at gmail.com>
>> wrote:
>>
>>> So for the AVX512 ones that list 2 features those features are both
>>> required, but for FMA you need either one of the features but not both.
>>> What is the comma separated list currently implemented as?
>>>
>>> On Thu, Oct 15, 2015 at 3:46 PM, Eric Christopher via cfe-commits <
>>> cfe-commits at lists.llvm.org> wrote:
>>>
>>>> Author: echristo
>>>> Date: Thu Oct 15 17:46:02 2015
>>>> New Revision: 250470
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=250470&view=rev
>>>> Log:
>>>> Fix the subtarget features required by some x86 builtins.
>>>>
>>>> Update the fma builtins to be fma/fma4 until some we can find some
>>>> documentation either way.
>>>>
>>>> Update a couple of the avx intrinsics because they were in the wrong
>>>> category.
>>>>
>>>> Modified:
>>>>     cfe/trunk/include/clang/Basic/BuiltinsX86.def
>>>>
>>>> Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=250470&r1=250469&r2=250470&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original)
>>>> +++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Thu Oct 15 17:46:02
>>>> 2015
>>>> @@ -718,38 +718,38 @@ TARGET_BUILTIN(__builtin_ia32_sha256msg1
>>>>  TARGET_BUILTIN(__builtin_ia32_sha256msg2, "V4iV4iV4i", "", "sha")
>>>>
>>>>  // FMA
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddss, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddsd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubss, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubsd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddss, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddsd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubss, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubsd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddsubps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddsubpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubaddps, "V4fV4fV4fV4f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubaddpd, "V2dV2dV2dV2d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddps256, "V8fV8fV8fV8f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddpd256, "V4dV4dV4dV4d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubps256, "V8fV8fV8fV8f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubpd256, "V4dV4dV4dV4d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddps256, "V8fV8fV8fV8f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmaddpd256, "V4dV4dV4dV4d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubps256, "V8fV8fV8fV8f", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfnmsubpd256, "V4dV4dV4dV4d", "", "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddsubps256, "V8fV8fV8fV8f", "",
>>>> "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmaddsubpd256, "V4dV4dV4dV4d", "",
>>>> "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubaddps256, "V8fV8fV8fV8f", "",
>>>> "fma")
>>>> -TARGET_BUILTIN(__builtin_ia32_vfmsubaddpd256, "V4dV4dV4dV4d", "",
>>>> "fma")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddps, "V4fV4fV4fV4f", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddpd, "V2dV2dV2dV2d", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddss, "V4fV4fV4fV4f", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddsd, "V2dV2dV2dV2d", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubps, "V4fV4fV4fV4f", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubpd, "V2dV2dV2dV2d", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubss, "V4fV4fV4fV4f", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubsd, "V2dV2dV2dV2d", "", "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddps, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddpd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddss, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddsd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubps, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubpd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubss, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubsd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddsubps, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddsubpd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubaddps, "V4fV4fV4fV4f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubaddpd, "V2dV2dV2dV2d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmaddpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfnmsubpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddsubps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmaddsubpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubaddps256, "V8fV8fV8fV8f", "",
>>>> "fma,fma4")
>>>> +TARGET_BUILTIN(__builtin_ia32_vfmsubaddpd256, "V4dV4dV4dV4d", "",
>>>> "fma,fma4")
>>>>
>>>>  TARGET_BUILTIN(__builtin_ia32_vfmaddpd128_mask, "V2dV2dV2dV2dUc", "",
>>>> "avx512vl")
>>>>  TARGET_BUILTIN(__builtin_ia32_vfmaddpd128_mask3, "V2dV2dV2dV2dUc", "",
>>>> "avx512vl")
>>>> @@ -952,8 +952,8 @@ TARGET_BUILTIN(__builtin_ia32_cmpps256_m
>>>>  TARGET_BUILTIN(__builtin_ia32_cmpps128_mask,   "UcV4fV4fIiUc", "",
>>>> "avx512vl")
>>>>
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpeqb512_mask, "LLiV64cV64cLLi", "",
>>>> "avx512bw")
>>>> -TARGET_BUILTIN(__builtin_ia32_pcmpeqd512_mask, "sV16iV16is", "",
>>>> "avx512bw")
>>>> -TARGET_BUILTIN(__builtin_ia32_pcmpeqq512_mask, "cV8LLiV8LLic", "",
>>>> "avx512bw")
>>>> +TARGET_BUILTIN(__builtin_ia32_pcmpeqd512_mask, "sV16iV16is", "",
>>>> "avx512f")
>>>> +TARGET_BUILTIN(__builtin_ia32_pcmpeqq512_mask, "cV8LLiV8LLic", "",
>>>> "avx512f")
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpeqw512_mask, "iV32sV32si", "",
>>>> "avx512bw")
>>>>
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpeqb256_mask, "iV32cV32ci", "",
>>>> "avx512vl,avx512bw")
>>>> @@ -966,8 +966,8 @@ TARGET_BUILTIN(__builtin_ia32_pcmpeqq128
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpeqw128_mask, "cV8sV8sc", "",
>>>> "avx512vl,avx512bw")
>>>>
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpgtb512_mask, "LLiV64cV64cLLi", "",
>>>> "avx512bw")
>>>> -TARGET_BUILTIN(__builtin_ia32_pcmpgtd512_mask, "sV16iV16is", "",
>>>> "avx512bw")
>>>> -TARGET_BUILTIN(__builtin_ia32_pcmpgtq512_mask, "cV8LLiV8LLic", "",
>>>> "avx512bw")
>>>> +TARGET_BUILTIN(__builtin_ia32_pcmpgtd512_mask, "sV16iV16is", "",
>>>> "avx512f")
>>>> +TARGET_BUILTIN(__builtin_ia32_pcmpgtq512_mask, "cV8LLiV8LLic", "",
>>>> "avx512f")
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpgtw512_mask, "iV32sV32si", "",
>>>> "avx512bw")
>>>>
>>>>  TARGET_BUILTIN(__builtin_ia32_pcmpgtb256_mask, "iV32cV32ci", "",
>>>> "avx512vl,avx512bw")
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>>
>>>
>>>
>>>
>>> --
>>> ~Craig
>>>
>>
>
>
> --
> ~Craig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151016/8d56197d/attachment.html>


More information about the cfe-commits mailing list