Bug 88498 - [9 Regression] FAIL: gcc.target/i386/avx512vl-pr79299-1.c (internal compiler error)
Summary: [9 Regression] FAIL: gcc.target/i386/avx512vl-pr79299-1.c (internal compiler ...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: 9.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-14 14:45 UTC by H.J. Lu
Modified: 2018-12-15 11:24 UTC (History)
2 users (show)

See Also:
Host:
Target: i386,x86-64
Build:
Known to work:
Known to fail:
Last reconfirmed: 2018-12-14 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2018-12-14 14:45:58 UTC
On x86-64, r267123 has

[hjl@gnu-cfl-1 gcc]$ /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -march=corei7 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -Ofast -mavx512vl -masm=intel -c -o avx512vl-pr79299-1.o /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
during GIMPLE pass: vect
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c: In function \u2018f1\u2019:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c:15:1: internal compiler error: in vect_gen_perm_mask_checked, at tree-vect-stmts.c:7269
0x14c4956 vect_gen_perm_mask_checked(tree_node*, vec_perm_indices const&)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:7269
0x14b3759 vect_build_gather_load_calls
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:2698
0x14c5c2f vectorizable_load
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:7629
0x14ccb75 vect_transform_stmt(_stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:9655
0x14f157a vect_transform_loop_stmt
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-loop.c:8139
0x14f224f vect_transform_loop(_loop_vec_info*)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-loop.c:8358
0x151d21e try_vectorize_loop_1
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:969
0x151d4b5 try_vectorize_loop
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:1019
0x151d685 vectorize_loops()
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:1101
0x1389785 execute
	/export/gnu/import/git/sources/gcc/gcc/tree-ssa-loop.c:414
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
[hjl@gnu-cfl-1 gcc]$
Comment 1 H.J. Lu 2018-12-14 14:48:00 UTC
Also:

FAIL: gcc.target/i386/pr81225.c (internal compiler error)

/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/pr81225.c -march=corei7 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -mavx512ifma -O3 -ffloat-store -S -o pr81225.s
during GIMPLE pass: vect
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/pr81225.c: In function \u2018foo\u2019:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/pr81225.c:10:1: internal compiler error: in vect_gen_perm_mask_checked, at tree-vect-stmts.c:7269
0x14c4956 vect_gen_perm_mask_checked(tree_node*, vec_perm_indices const&)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:7269
0x14b3759 vect_build_gather_load_calls
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:2698
0x14c5c2f vectorizable_load
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:7629
0x14ccb75 vect_transform_stmt(_stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-stmts.c:9655
0x14f157a vect_transform_loop_stmt
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-loop.c:8139
0x14f224f vect_transform_loop(_loop_vec_info*)
	/export/gnu/import/git/sources/gcc/gcc/tree-vect-loop.c:8358
0x151d21e try_vectorize_loop_1
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:969
0x151d4b5 try_vectorize_loop
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:1019
0x151d685 vectorize_loops()
	/export/gnu/import/git/sources/gcc/gcc/tree-vectorizer.c:1101
0x1389785 execute
	/export/gnu/import/git/sources/gcc/gcc/tree-ssa-loop.c:414
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
[hjl@gnu-cfl-1 gcc]$
Comment 2 Jakub Jelinek 2018-12-14 19:55:51 UTC
Please try https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01085.html
Comment 3 Terry Guo 2018-12-15 05:36:50 UTC
I just tried and both of failures are gone with Jakub's patch.
Comment 4 Jakub Jelinek 2018-12-15 11:03:00 UTC
Author: jakub
Date: Sat Dec 15 11:02:28 2018
New Revision: 267169

URL: https://gcc.gnu.org/viewcvs?rev=267169&root=gcc&view=rev
Log:
	PR tree-optimization/88464
	PR target/88498
	* tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
	and mask with integral masktype, don't try to permute mask vectors,
	instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
	(vectorizable_store): Handle masked scatters with decl and integral
	mask type.
	(permute_vec_elements): Allow scalar_dest to be NULL.
	* config/i386/i386.c (ix86_get_builtin)
	<case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
	to be the same.

	* gcc.target/i386/avx512f-pr88462-1.c: Rename to ...
	* gcc.target/i386/avx512f-pr88464-1.c: ... this.  Fix up PR number.
	Expect 4 vectorized loops instead of 3.
	(f4): New function.
	* gcc.target/i386/avx512f-pr88462-2.c: Rename to ...
	* gcc.target/i386/avx512f-pr88464-2.c: ... this.  Fix up PR number
	and #include.
	(avx512f_test): Prepare arguments for f4 and check the results.
	* gcc.target/i386/avx512f-pr88464-3.c: New test.
	* gcc.target/i386/avx512f-pr88464-4.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c
      - copied, changed from r267168, trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c
      - copied, changed from r267168, trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c
Removed:
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-stmts.c
Comment 5 Jakub Jelinek 2018-12-15 11:05:14 UTC
Author: jakub
Date: Sat Dec 15 11:04:41 2018
New Revision: 267170

URL: https://gcc.gnu.org/viewcvs?rev=267170&root=gcc&view=rev
Log:
	PR tree-optimization/88464
	PR target/88498
	* tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
	and mask with integral masktype, don't try to permute mask vectors,
	instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
	(vectorizable_store): Handle masked scatters with decl and integral
	mask type.
	(permute_vec_elements): Allow scalar_dest to be NULL.
	* config/i386/i386.c (ix86_get_builtin)
	<case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
	to be the same.

	* gcc.target/i386/avx512f-pr88462-1.c: Rename to ...
	* gcc.target/i386/avx512f-pr88464-1.c: ... this.  Fix up PR number.
	Expect 4 vectorized loops instead of 3.
	(f4): New function.
	* gcc.target/i386/avx512f-pr88462-2.c: Rename to ...
	* gcc.target/i386/avx512f-pr88464-2.c: ... this.  Fix up PR number
	and #include.
	(avx512f_test): Prepare arguments for f4 and check the results.
	* gcc.target/i386/avx512f-pr88464-3.c: New test.
	* gcc.target/i386/avx512f-pr88464-4.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c
    trunk/gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c
Comment 6 Jakub Jelinek 2018-12-15 11:24:04 UTC
Should be fixed now.