This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX2] Replace avx2.pbroadcast / avx2.vbroadcast intrinsics usage in avx2intrin.h with __builtin_shufflevector
AbandonedPublic

Authored by RKSimon on Aug 19 2015, 4:13 AM.

Details

Summary

Sister patch to D10555

As discussed on D10555, this patch replaces the use of the avx2.vbroadcast (float) and avx2.pbroadcast (integer) broadcast intrinsics in avx2intrin.h with generic __builtin_shufflevector calls.

At present all these changes still result in the expected vbroadcast/vpbroadcast instructions in debug code. I can add a test that ensures this if people wish but the conclusion on the discussion thread was that this shouldn't be considered vital.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 32531.Aug 19 2015, 4:13 AM
RKSimon retitled this revision from to [X86][AVX2] Replace avx2.pbroadcast / avx2.vbroadcast intrinsics usage in avx2intrin.h with __builtin_shufflevector.
RKSimon updated this object.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: cfe-commits.
ab edited edge metadata.Aug 19 2015, 10:00 AM

Heh, this is D10556, no? :P

RKSimon abandoned this revision.Aug 19 2015, 12:55 PM
In D12143#228006, @ab wrote:

Heh, this is D10556, no? :P

Yes you're right (and you remembered to kill the builtin defs) - please can you add some more reviewers so that we can get it dealt with along with D10555?