On Tue, Sep 2, 2014 at 2:36 PM, Ilya Tocar <tocarip.in...@gmail.com> wrote: > Hi, > > Along with intrinsics for adcx/adox (supported since 4.8) ICC also > added intrinsics for adc/sbb [1]. This patch adds them. > Bootstraps/passes make-check. Ok for trunk? > > [1] > http://www.xlsoft.com/jp/products/intel/compilers/ccm/2013/Release_Notes_u3.pdf > > ChangeLog below: > > gcc/ > > 2014-09-02 Ilya Tocar <ilya.to...@intel.com> > > * config/i386/adxintrin.h (_subborrow_u32): New. > (_addcarry_u32): Ditto. > (_subborrow_u64): Ditto. > (_addcarry_u64): Ditto. > * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32, > IX86_BUILTIN_SBB64. > (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32, > __builtin_ia32_sbb_u64 > > testsuite/ > > 2014-09-02 Ilya Tocar <ilya.to...@intel.com> > > * gcc.target/i386/adx-addcarryx32-1.c: Test addcarry, subborrow. > * gcc.target/i386/adx-addcarryx32-2.c: Ditto. > * gcc.target/i386/adx-addcarryx32-3.c: Ditto. > * gcc.target/i386/adx-addcarryx64-1.c: Ditto. > * gcc.target/i386/adx-addcarryx64-2.c: Ditto. > * gcc.target/i386/adx-addcarryx64-3.c: Ditto.
OK with two comment changes below. Thanks, Uros. > + /* ADC/SBB instructions. */ Just SBB instruction. > + IX86_BUILTIN_SBB32, > + IX86_BUILTIN_SBB64, > + > /* FSGSBASE instructions. */ > IX86_BUILTIN_RDFSBASE32, > IX86_BUILTIN_RDFSBASE64, > @@ -31213,6 +31217,14 @@ ix86_init_mmx_sse_builtins (void) > UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG, > IX86_BUILTIN_ADDCARRYX64); > > + /* ADX/SBB */ Also here, these builtins implement just SBB instruction. > + def_builtin (0, "__builtin_ia32_sbb_u32", > + UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED, IX86_BUILTIN_SBB32); > + def_builtin (OPTION_MASK_ISA_64BIT, > + "__builtin_ia32_sbb_u64", > + UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG, > + IX86_BUILTIN_SBB64); > +