gcc/ * common/config/i386/i386-common.c (OPTION_MASK_ISA_SHA_SET): New. (OPTION_MASK_ISA_SHA_UNSET): Ditto. (ix86_handle_option): Handle OPT_msha. * config.gcc (extra_headers): Add shaintrin.h. * config/i386/cpuid.h (bit_SHA): New. * config/i386/driver-i386.c (host_detect_local_cpu): Detect SHA instructions. * config/i386/i386-c.c (ix86_target_macros_internal): Handle OPTION_MASK_ISA_SHA. * config/i386/i386.c (ix86_target_string): Add -msha. (ix86_option_override_internal): Add PTA_SHA. (ix86_valid_target_attribute_inner_p): Handle OPT_msha. (enum ix86_builtins): Add IX86_BUILTIN_SHA1MSG1, IX86_BUILTIN_SHA1MSG2, IX86_BUILTIN_SHA1NEXTE, IX86_BUILTIN_SHA1RNDS4, IX86_BUILTIN_SHA256MSG1, IX86_BUILTIN_SHA256MSG2, IX86_BUILTIN_SHA256RNDS2. (bdesc_args): Add BUILTINS defined above. (ix86_init_mmx_sse_builtins): Add __builtin_ia32_sha1msg1, __builtin_ia32_sha1msg2, __builtin_ia32_sha1nexte, __builtin_ia32_sha1rnds4, __builtin_ia32_sha256msg1, __builtin_ia32_sha256msg2, __builtin_ia32_sha256rnds2. (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SI_V4SI_V4SI, add warning for CODE_FOR_sha1rnds4. * config/i386/i386.h (TARGET_SHA): New. (TARGET_SHA_P): Ditto. * config/i386/i386.opt (-msha): Document it. * config/i386/immintrin.h: Add shaintrin.h. * config/i386/shaintrin.h: New. * config/i386/sse.md (unspec): Add UNSPEC_SHA1MSG1, UNSPEC_SHA1MSG2, UNSPEC_SHA1NEXTE, UNSPEC_SHA1RNDS4, UNSPEC_SHA256MSG1, UNSPEC_SHA256MSG2, UNSPEC_SHA256RNDS2. (sha1msg1): New. (sha1msg2): Ditto. (sha1nexte): Ditto. (sha1rnds4): Ditto. (sha256msg1): Ditto. (sha256msg2): Ditto. (sha256rnds2): Ditto. * doc/invoke.texi: Add -msha. testsuite/ * gcc.target/i386/avx-1.c: Add define for __builtin_ia32_sha1rnds4. * gcc.target/i386/i386.exp (check_effective_target_sha): New. * gcc.target/i386/sha-check.h: New file. * gcc.target/i386/sha1msg1-1.c: Ditto. * gcc.target/i386/sha1msg1-2.c: Ditto. * gcc.target/i386/sha1msg2-1.c: Ditto. * gcc.target/i386/sha1msg2-2.c: Ditto. * gcc.target/i386/sha1nexte-1: Ditto. * gcc.target/i386/sha1nexte-2: Ditto. * gcc.target/i386/sha1rnds4-1.c: Ditto. * gcc.target/i386/sha1rnds4-2.c: Ditto. * gcc.target/i386/sha256msg1-1.c: Ditto. * gcc.target/i386/sha256msg1-2.c: Ditto. * gcc.target/i386/sha256msg2-1.c: Ditto. * gcc.target/i386/sha256msg2-2.c: Ditto. * gcc.target/i386/sha256rnds2-1.c: Ditto. * gcc.target/i386/sha256rnds2-2.c: Ditto. * gcc.target/i386/sse-13.c: Add __builtin_ia32_sha1rnds4. * gcc.target/i386/sse-14.c: Add _mm_sha1rnds4_epu32. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Add __builtin_ia32_sha1rnds4. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com> From-SVN: r206263
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
PR23205.C | Loading commit data... | |
abstract1.C | Loading commit data... | |
abstract2.C | Loading commit data... | |
abstract3.C | Loading commit data... | |
abstract4.C | Loading commit data... | |
abstract5.C | Loading commit data... | |
access1.C | Loading commit data... | |
access2.C | Loading commit data... | |
access3.C | Loading commit data... | |
anon-struct.C | Loading commit data... | |
anon-union.C | Loading commit data... | |
anon-union2.C | Loading commit data... | |
anon-union3.C | Loading commit data... | |
anon2.C | Loading commit data... | |
anon3.C | Loading commit data... | |
anon4.C | Loading commit data... | |
anon5.C | Loading commit data... | |
arm-neon-1.C | Loading commit data... | |
armv7m-1.C | Loading commit data... | |
array1.C | Loading commit data... | |
array2.C | Loading commit data... | |
array3.C | Loading commit data... | |
array4.C | Loading commit data... | |
array5.C | Loading commit data... | |
array6.C | Loading commit data... | |
array7.C | Loading commit data... | |
assign1.C | Loading commit data... | |
big-struct.C | Loading commit data... | |
bitfield1.C | Loading commit data... | |
bitfield2.C | Loading commit data... | |
bitfield3.C | Loading commit data... | |
bitfield4.C | Loading commit data... | |
builtin-unreachable-1.C | Loading commit data... | |
builtin1.C | Loading commit data... | |
canon-31724.C | Loading commit data... | |
canon-33194.C | Loading commit data... | |
canon-37342.C | Loading commit data... | |
classkey1.C | Loading commit data... | |
complex1.C | Loading commit data... | |
component1.C | Loading commit data... | |
const1.C | Loading commit data... | |
const2.C | Loading commit data... | |
const3.C | Loading commit data... | |
constref1.C | Loading commit data... | |
constref2.C | Loading commit data... | |
conversion1.C | Loading commit data... | |
copy1.C | Loading commit data... | |
copy2.C | Loading commit data... | |
crash-1.C | Loading commit data... | |
crash-10.C | Loading commit data... | |
crash-11.C | Loading commit data... | |
crash-12.C | Loading commit data... | |
crash-2.C | Loading commit data... | |
crash-3.C | Loading commit data... | |
crash-4.C | Loading commit data... | |
crash-5.C | Loading commit data... | |
crash-6.C | Loading commit data... | |
crash-7.C | Loading commit data... | |
crash-8.C | Loading commit data... | |
crash-9.C | Loading commit data... | |
ctor1.C | Loading commit data... | |
ctor2.C | Loading commit data... | |
cv_func.C | Loading commit data... | |
cv_func2.C | Loading commit data... | |
cv_func3.C | Loading commit data... | |
cxa-atexit1.C | Loading commit data... | |
darwin-cfstring1.C | Loading commit data... | |
darwin-minversion-1.C | Loading commit data... | |
datasec1.C | Loading commit data... | |
default1.C | Loading commit data... | |
default2.C | Loading commit data... | |
default3.C | Loading commit data... | |
default4.C | Loading commit data... | |
default5.C | Loading commit data... | |
default6.C | Loading commit data... | |
default7.C | Loading commit data... | |
default8.C | Loading commit data... | |
do1.C | Loading commit data... | |
dtor1.C | Loading commit data... | |
dtor2.C | Loading commit data... | |
dump-ada-spec-1.C | Loading commit data... | |
dump-ada-spec-2.C | Loading commit data... | |
ellipsis1.C | Loading commit data... | |
enum1.C | Loading commit data... | |
enum2.C | Loading commit data... | |
enum3.C | Loading commit data... | |
error1.C | Loading commit data... | |
error10.C | Loading commit data... | |
error11.C | Loading commit data... | |
error12.C | Loading commit data... | |
error13.C | Loading commit data... | |
error14.C | Loading commit data... | |
error15.C | Loading commit data... | |
error16.C | Loading commit data... | |
error17.C | Loading commit data... | |
error18.C | Loading commit data... | |
error19.C | Loading commit data... | |
error2.C | Loading commit data... | |
error20.C | Loading commit data... | |
error21.C | Loading commit data... | |
error22.C | Loading commit data... | |
error23.C | Loading commit data... | |
error24.C | Loading commit data... | |
error25.C | Loading commit data... | |
error26.C | Loading commit data... | |
error27.C | Loading commit data... | |
error28.C | Loading commit data... | |
error29.C | Loading commit data... | |
error3.C | Loading commit data... | |
error30.C | Loading commit data... | |
error31.C | Loading commit data... | |
error32.C | Loading commit data... | |
error33.C | Loading commit data... | |
error34.C | Loading commit data... | |
error4.C | Loading commit data... | |
error5.C | Loading commit data... | |
error6.C | Loading commit data... | |
error7.C | Loading commit data... | |
error8.C | Loading commit data... | |
error9.C | Loading commit data... | |
field1.C | Loading commit data... | |
final1.C | Loading commit data... | |
final2.C | Loading commit data... | |
first-global.C | Loading commit data... | |
fold1.C | Loading commit data... | |
friend1.C | Loading commit data... | |
friend2.C | Loading commit data... | |
friend3.C | Loading commit data... | |
friend4.C | Loading commit data... | |
friend5.C | Loading commit data... | |
gc1.C | Loading commit data... | |
gc2.C | Loading commit data... | |
gc3.C | Loading commit data... | |
gc4.C | Loading commit data... | |
gc5.C | Loading commit data... | |
i386-1.C | Loading commit data... | |
i386-2.C | Loading commit data... | |
i386-3.C | Loading commit data... | |
i386-4.C | Loading commit data... | |
i386-7.C | Loading commit data... | |
i386-8.C | Loading commit data... | |
i386-9.C | Loading commit data... | |
incomplete1.C | Loading commit data... | |
incomplete2.C | Loading commit data... | |
incomplete3.C | Loading commit data... | |
increment1.C | Loading commit data... | |
infloop-1.C | Loading commit data... | |
init1.C | Loading commit data... | |
init2.C | Loading commit data... | |
java1.C | Loading commit data... | |
java2.C | Loading commit data... | |
java3.C | Loading commit data... | |
label1.C | Loading commit data... | |
large-size-array.C | Loading commit data... | |
linkage1.C | Loading commit data... | |
macro-1.C | Loading commit data... | |
main1.C | Loading commit data... | |
mmintrin.C | Loading commit data... | |
mult-stor1.C | Loading commit data... | |
nested-extern-1.C | Loading commit data... | |
nested-extern-2.C | Loading commit data... | |
nested-extern.cc | Loading commit data... | |
new-size-type.C | Loading commit data... | |
new1.C | Loading commit data... | |
nontype-1.C | Loading commit data... | |
ns1.C | Loading commit data... | |
offsetof1.C | Loading commit data... | |
offsetof2.C | Loading commit data... | |
offsetof3.C | Loading commit data... | |
offsetof4.C | Loading commit data... | |
offsetof5.C | Loading commit data... | |
offsetof6.C | Loading commit data... | |
offsetof7.C | Loading commit data... | |
opaque-1.C | Loading commit data... | |
opaque-2.C | Loading commit data... | |
opaque-3.C | Loading commit data... | |
operator1.C | Loading commit data... | |
operator2.C | Loading commit data... | |
packed1.C | Loading commit data... | |
pr20366.C | Loading commit data... | |
pr22003.C | Loading commit data... | |
pr22358.C | Loading commit data... | |
pr23205-2.C | Loading commit data... | |
pr24623.C | Loading commit data... | |
pr25632.C | Loading commit data... | |
pr27495.C | Loading commit data... | |
pr28114.C | Loading commit data... | |
pr28304.C | Loading commit data... | |
pr28432.C | Loading commit data... | |
pr29610.C | Loading commit data... | |
pr31078.C | Loading commit data... | |
pr33558-2.C | Loading commit data... | |
pr33558.C | Loading commit data... | |
pr33601.C | Loading commit data... | |
pr34435.C | Loading commit data... | |
pr35011.C | Loading commit data... | |
pr35504.C | Loading commit data... | |
pr36944.C | Loading commit data... | |
pr37394.C | Loading commit data... | |
pr37789.C | Loading commit data... | |
pr38706.C | Loading commit data... | |
pr39060.C | Loading commit data... | |
pr39496.C | Loading commit data... | |
pr40446.C | Loading commit data... | |
pr40561.C | Loading commit data... | |
pr42645-1.C | Loading commit data... | |
pr42645-2.C | Loading commit data... | |
pr42685.C | Loading commit data... | |
pr42806.C | Loading commit data... | |
pr43116.C | Loading commit data... | |
pr43631.C | Loading commit data... | |
pr47218-1.C | Loading commit data... | |
pr47218.C | Loading commit data... | |
pr47218.h | Loading commit data... | |
pr49133.C | Loading commit data... | |
pr49912.C | Loading commit data... | |
pr50212.C | Loading commit data... | |
pr50464.C | Loading commit data... | |
pr52048.C | Loading commit data... | |
pr53811.C | Loading commit data... | |
pr55650.C | Loading commit data... | |
pr55650.cc | Loading commit data... | |
pr59492.C | Loading commit data... | |
pragma-re-1.C | Loading commit data... | |
pragma-re-2.C | Loading commit data... | |
profile1.C | Loading commit data... | |
ptrmem1.C | Loading commit data... | |
ptrmem10.C | Loading commit data... | |
ptrmem11.C | Loading commit data... | |
ptrmem2.C | Loading commit data... | |
ptrmem3.C | Loading commit data... | |
ptrmem4.C | Loading commit data... | |
ptrmem5.C | Loading commit data... | |
ptrmem6.C | Loading commit data... | |
ptrmem7.C | Loading commit data... | |
ptrmem8.C | Loading commit data... | |
ptrmem9.C | Loading commit data... | |
qual1.C | Loading commit data... | |
redecl1.C | Loading commit data... | |
redecl2.C | Loading commit data... | |
return1.C | Loading commit data... | |
s390-1.C | Loading commit data... | |
scope1.C | Loading commit data... | |
semicolon.C | Loading commit data... | |
spu2vmx-1.C | Loading commit data... | |
static1.C | Loading commit data... | |
static11.C | Loading commit data... | |
static2.C | Loading commit data... | |
stdarg1.C | Loading commit data... | |
stdarg2.C | Loading commit data... | |
stdarg3.C | Loading commit data... | |
struct-va_list.C | Loading commit data... | |
switch1.C | Loading commit data... | |
switch2.C | Loading commit data... | |
switch3.C | Loading commit data... | |
synth1.C | Loading commit data... | |
typedef1.C | Loading commit data... | |
typedef2.C | Loading commit data... | |
typedef3.C | Loading commit data... | |
typedef4.C | Loading commit data... | |
ucnid-1.C | Loading commit data... | |
unreachable1.C | Loading commit data... | |
unused1.C | Loading commit data... | |
var_copy-1.C | Loading commit data... | |
vararg-1.C | Loading commit data... | |
vararg-2.C | Loading commit data... | |
vararg-3.C | Loading commit data... | |
vararg-4.C | Loading commit data... | |
vector-compare.C | Loading commit data... | |
virtual1.C | Loading commit data... | |
virtual2.C | Loading commit data... | |
void1.C | Loading commit data... | |
void2.C | Loading commit data... | |
vrp1.C | Loading commit data... | |
vthunk1.C | Loading commit data... | |
warning1.C | Loading commit data... |