Re: GCC does not generate ADCX or ADOX for _addcarryx_u64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 21, 2017 at 1:48 PM, Xi Ruoyao <ryxi@xxxxxxxxxxxxxxxxx> wrote:
> On 2017-08-21 19:41 +0800, Xi Ruoyao wrote:
>> On 2017-08-21 07:31 -0400, Jeffrey Walton wrote:
>> > On Mon, Aug 21, 2017 at 7:20 AM, Marc Glisse <marc.glisse@xxxxxxxx> wrote:
>> > > On Mon, 21 Aug 2017, Jeffrey Walton wrote:
>> > >
>> > > > I'm trying to use _addcarryx_u64. GCC 7.1 is still generating ADD and
>> > > > ADC instead of ADCX or ADOX:
>> > >
>> > > Does that compute wrong values? Make the program slower?
>> >
>> > It looks like the values are computed correctly.
>> >
>> > I don't know the affect on performance. The only benchmarks I have are
>> > for add/adc. I can't get the adcx/adox generated to benchmark them.
>> >
>> > Compared to Intel ICC code generation, Intel's code is about 20% to 30% smaller.
>>
>> GCC once used ADCX but got silly results.  So Uros disabled it.
>
> CC Uroš for his (or her) opinion.

The compiler is not able to distingusih between OF and CF chains,
since both are represented as a different mode of a single flags
register. This is the limitation of the compiler.

Uros.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux