Bug 91341 - Missing AVX Intrinsics: load/store u2
Summary: Missing AVX Intrinsics: load/store u2
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 9.1.0
: P3 normal
Target Milestone: ---
Assignee: Jakub Jelinek
URL:
Keywords:
: 92502 (view as bug list)
Depends on:
Blocks: 88918
  Show dependency treegraph
 
Reported: 2019-08-04 04:00 UTC by Alex Yee
Modified: 2019-11-13 18:07 UTC (History)
1 user (show)

See Also:
Host:
Target: x86_64-*-*, i?86-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2019-08-04 00:00:00


Attachments
gcc10-pr91341.patch (1.71 KB, patch)
2019-08-04 15:59 UTC, Jakub Jelinek
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Yee 2019-08-04 04:00:19 UTC
The following intrinsics are missing:
 - _mm256_loadu2_m128()
 - _mm256_storeu2_m128()
 - _mm256_loadu2_m128d()
 - _mm256_storeu2_m128d()
 - _mm256_loadu2_m128i()
 - _mm256_storeu2_m128i()

https://godbolt.org/z/1jj_-e
Comment 1 Jakub Jelinek 2019-08-04 15:59:21 UTC
Created attachment 46668 [details]
gcc10-pr91341.patch

Untested implementation.
Comment 2 Jakub Jelinek 2019-08-05 08:01:20 UTC
Author: jakub
Date: Mon Aug  5 08:00:30 2019
New Revision: 274109

URL: https://gcc.gnu.org/viewcvs?rev=274109&root=gcc&view=rev
Log:
	PR target/91341
	* config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
	_mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
	_mm256_storeu2_m128i): New function.

	* gcc.target/i386/avx-loadu2-m128-1.c: New test.
	* gcc.target/i386/avx-loadu2-m128-2.c: New test.
	* gcc.target/i386/avx-loadu2-m128d-1.c: New test.
	* gcc.target/i386/avx-loadu2-m128d-2.c: New test.
	* gcc.target/i386/avx-loadu2-m128i-1.c: New test.
	* gcc.target/i386/avx-loadu2-m128i-2.c: New test.
	* gcc.target/i386/avx-storeu2-m128-1.c: New test.
	* gcc.target/i386/avx-storeu2-m128-2.c: New test.
	* gcc.target/i386/avx-storeu2-m128d-1.c: New test.
	* gcc.target/i386/avx-storeu2-m128d-2.c: New test.
	* gcc.target/i386/avx-storeu2-m128i-1.c: New test.
	* gcc.target/i386/avx-storeu2-m128i-2.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128-2.c
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128d-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128d-2.c
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128i-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-loadu2-m128i-2.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128-2.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128d-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128d-2.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128i-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx-storeu2-m128i-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/avxintrin.h
    trunk/gcc/testsuite/ChangeLog
Comment 3 Jakub Jelinek 2019-08-05 18:12:06 UTC
Implemented for 10.1.
Comment 4 Jakub Jelinek 2019-11-13 18:07:14 UTC
*** Bug 92502 has been marked as a duplicate of this bug. ***