- Nov 16, 2024
-
-
Martin Uecker authored
When forming the composite type from two tagged type, we need to find the original type for a typedecl to get the correct tag. PR c/117548 gcc/c/ChangeLog: * c-decl.cc (finish_struct): Add checking assertion. * c-typeck.cc (c_type_original): New function. (composite_types_internal): Get tag from original type. gcc/testsuite/ChangeLog: * gcc.dg/pr117548.c: New test.
-
Sam James authored
r15-5327-g55e3bd376b2214 changes the default to -std=gnu23 but this test relies on unprototyped functions. Follow Joseph's advice in that commit and tweak the test accordingly. gcc/testsuite/ChangeLog: * gcc.target/i386/pr66891.c: Pass -std=gnu17.
-
Sam James authored
r15-5327-g55e3bd376b2214 changes the default to -std=gnu23 but these tests now trigger -Wold-style-definition. Follow Joseph's advice in that commit and tweak the tests accordingly. gcc/testsuite/ChangeLog: * gcc.dg/graphite/id-15.c: Pass -Wno-old-style-definition. * gcc.dg/graphite/pr38413.c: Ditto. * gcc.dg/graphite/pr38510.c: Ditto.
-
Gaius Mulley authored
This patch adds missing return statements after a call to RAISE. Four of the modules in libgm2 have procedure functions with missing return statements. These errors were exposed after the reimplementation of parameter declaration patch and triggered by -Wreturn-type. The patch also adds exit statements to the M2RTS noreturn functions. gcc/m2/ChangeLog: PR modula2/117555 * gm2-libs-iso/EXCEPTIONS.mod (CurrentNumber): Add return statement. * gm2-libs-iso/IOChan.mod (ReadResult): Ditto. (CurrentFlags): Ditto. (DeviceError): Ditto. * gm2-libs-iso/IOLink.mod (DeviceTablePtrValue): Ditto. * gm2-libs-iso/LongConv.mod (ValueReal): Ditto. * gm2-libs/M2RTS.mod (Halt): Add noreturn attribute. Add exit (1). (HaltC): Add exit (1). * pge-boot/GM2RTS.cc (M2RTS_Halt): Add exit (1). (M2RTS_HaltC): Ditto. Signed-off-by:
Gaius Mulley <gaiusmod2@gmail.com>
-
Jonathan Wakely authored
libstdc++-v3/ChangeLog: * Makefile.am: Use $(MAKE) -C dir instead of cd dir && $(MAKE). * Makefile.in: Regenerate.
-
Pan Li authored
After we create a isolated folder to hold all SAT scalar test, we have fully control of what optimization options passing to the testcase. Thus, it is better to remove the unnecessary work around for flto option, as well as the -O3 option for each cases. The riscv.exp will pass sorts of different optimization options for each case. The below test suites are passed for this patch. * The rv64gcv fully regression test. It is test only patch and obvious up to a point, will commit it directly if no comments in next 48H. gcc/testsuite/ChangeLog: * gcc.target/riscv/sat/sat_u_sub-1-u16.c: Remove flto dg-skip workaround and -O3 option. * gcc.target/riscv/sat/sat_u_sub-1-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-1-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-1-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-10-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-10-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-10-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-10-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-11-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-11-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-11-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-11-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-12-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-12-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-12-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-12-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-2-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-2-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-2-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-2-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-3-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-3-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-3-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-3-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-4-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-4-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-4-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-4-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-5-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-5-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-5-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-5-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-6-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-6-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-6-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-6-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-7-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-7-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-7-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-7-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-8-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-8-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-8-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-8-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-9-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-9-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-9-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub-9-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-4.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-4.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u64-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u64-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-4.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-1-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u64-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-3.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-2-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u16-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u16-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u32-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u32-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u8-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u8-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-3-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u16-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u16-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u32-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u32-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u8-1.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u8-2.c: Ditto. * gcc.target/riscv/sat/sat_u_sub_imm-4-u8.c: Ditto. Signed-off-by:
Pan Li <pan2.li@intel.com>
-
GCC Administrator authored
-
- Nov 15, 2024
-
-
Joseph Myers authored
Change the default language version for C compilation from -std=gnu17 to -std=gnu23. A few tests are updated to remove local definitions of bool, true and false (where making such an unconditional test change seemed to make more sense than changing the test conditionally earlier or building it with -std=gnu17); most test issues were already addressed in previous patches. In the case of ctf-function-pointers-2.c, it was agreed in bug 117289 that it would be OK to put -std=gnu17 in the test and leave more optimal BTF / CTF output for this test as a potential future improvement. Since the original test fixes, more such fixes have become necessary and so are included in this patch. More noinline attributes are added to simulate-thread tests where () meaning a prototype affected test results, while gcc.dg/torture/pr117496-1.c (a test declaring a function with () then calling it with arguments) gets -std=gnu17 added. Bootstrapped with no regressions for x86_64-pc-linux-gnu. NOTE: it's likely there are target-specific tests for non-x86 targets that need updating as a result of this change. See commit 9fb5348e ("testsuite: Prepare for -std=gnu23 default") for examples of changes to prepare the testsuite to work with a -std=gnu23 default. In most cases, adding -Wno-old-style-definition (for warnings for old-style function definitions) or -std=gnu17 (for other issues such as unprototyped function declarations with ()) is appropriate, but watch out for cases that indicate bugs with -std=gnu23 (in particular, any ICEs - there was only the one nested function test where I had to fix an ICE on x86_64). gcc/ * doc/invoke.texi (-std=gnu17, -std=gnu23): Document -std=gnu23 as default for C code. gcc/c-family/ * c-opts.cc (c_common_init_options): Default to C23. gcc/testsuite/ * c-c++-common/analyzer/asm-x86-dyndbg-2.c, c-c++-common/analyzer/asm-x86-lp64-2.c, c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c, c-c++-common/analyzer/coreutils-cksum-pr108664.c, c-c++-common/analyzer/feasibility-3.c, c-c++-common/analyzer/pr105783.c, c-c++-common/analyzer/sock-1.c, c-c++-common/attributes-4.c, gcc.dg/Warray-bounds-78.c, gcc.dg/analyzer/asm-x86-dyndbg-1.c: Do not define bool, true or false. * gcc.dg/debug/ctf/ctf-function-pointers-2.c: Use -std-gnu17. * gcc.dg/gnu23-version-2.c: New test. * gcc.dg/simulate-thread/atomic-load-int.c, gcc.dg/simulate-thread/atomic-load-longlong.c, gcc.dg/simulate-thread/atomic-load-short.c: Add more noinline attributes. * gcc.dg/torture/pr117496-1.c: Use -std=gnu17.
-
Gaius Mulley authored
This patch enforces a const expression increment in a FOR loop. It also fixes missing error locations. The FOR loop last iterator value is now calculated during M2GenGCC after all types and constants have been resolved. This results in fewer quadruples (as there is no need to build two paths for step > 0 and step < 0). gcc/m2/ChangeLog: PR modula2/117371 * gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to MetaErrorDecl. (IsUserType): Test against ZType. (MixTypesDecl): Test for ZType. * gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to MetaErrorDecl. (CodeLastForIterator): New procedure. (FoldLastForIterator): Ditto. (PerformLastForIterator): Ditto. (CodeStatement): Add case clause for LastForIteratorOp. (ErrorMessageDecl): Add iserror parameter. Call MetaErrorDecl with iserror parameter. (checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter. (CheckBinaryExpressionTypes): Ditto. (CheckElementSetTypes): Ditto. * gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment detailing the fall back when UnknownTokenNo is encountered. (MakeVirtual2Tok): Ditto. * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against UnknownTokenNo. (MakeVirtual2Tok): Ditto. * gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter. * gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error parameter. Issue warning if error is FALSE. * gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp. * gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause LastForIteratorOp. (CheckAddTuple2Read): New procedure. (BuildForLoopToRangeCheck): Remove. (ForLoopLastIteratorVariable): Ditto. (ForLoopLastIteratorConstant): Ditto. (ForLoopLastIterator): Reimplement. (BuildForToByDo): Remove ByType from call to ForLoopLastIterator. (WriteQuad): New case clause LastForIteratorOp. (WriteOperator): Ditto. * gm2-compiler/M2Students.def (CheckForVariableThatLooksLikeKeyword): Replace with ... (CheckVariableAgainstKeyword): ... this. * gm2-compiler/M2Students.mod (CheckForVariableThatLooksLikeKeyword): Replace with ... (CheckVariableAgainstKeyword): ... this. * gm2-compiler/M2SymInit.mod (CheckLastForIterator): New procedure. (CheckReadBeforeInitQuad): New case clause to call CheckLastForIterator. * gm2-compiler/P2SymBuild.mod: Replace CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword. gcc/testsuite/ChangeLog: PR modula2/117371 * gm2/iso/fail/forloopbyvar.mod: New test. * gm2/iso/fail/forloopbyvar4.mod: New test. * gm2/iso/fail/forloopbyvar5.mod: New test. * gm2/iso/pass/forloopbyvar3.mod: New test. Signed-off-by:
Gaius Mulley <gaiusmod2@gmail.com>
-
Gaius Mulley authored
This patch adds rules and dependencies for the automatically generated grammar sources. Bootstrapped using make -j 160. gcc/m2/ChangeLog: * Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c): New rule. (m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto. (m2/gm2-compiler-boot/P1Build.c): Ditto. (m2/gm2-compiler-boot/P1Build.o): Ditto. (m2/gm2-compiler-boot/P2Build.c): Ditto. (m2/gm2-compiler-boot/P2Build.o): Ditto. (m2/gm2-compiler-boot/P3Build.c): Ditto. (m2/gm2-compiler-boot/P3Build.o): Ditto. (m2/gm2-compiler-boot/PCBuild.c): Ditto. (m2/gm2-compiler-boot/PCBuild.o): Ditto. (m2/gm2-compiler-boot/PHBuild.c): Ditto. (m2/gm2-compiler-boot/PHBuild.o): Ditto. Signed-off-by:
Gaius Mulley <gaiusmod2@gmail.com>
-
Jennifer Schmitz authored
This patch improves the codegen for the following test case: uint64x2_t foo (uint64x2_t r) { uint32x4_t a = vreinterpretq_u32_u64 (r); uint32_t t; t = a[0]; a[0] = a[1]; a[1] = t; t = a[2]; a[2] = a[3]; a[3] = t; return vreinterpretq_u64_u32 (a); } from (-O1): foo: mov v31.16b, v0.16b ins v0.s[0], v0.s[1] ins v0.s[1], v31.s[0] ins v0.s[2], v31.s[3] ins v0.s[3], v31.s[2] ret to: foo: rev64 v0.4s, v0.4s ret This is achieved by extending the following match.pd pattern to account for type differences between @0 and @1 due to view converts. /* Simplify vector inserts of other vector extracts to a permute. */ (simplify (bit_insert @0 (BIT_FIELD_REF@2 @1 @rsize @rpos) @ipos) The patch was bootstrapped and regtested on aarch64-linux-gnu and x86_64-linux-gnu, no regression. OK for mainline? Signed-off-by:
Jennifer Schmitz <jschmitz@nvidia.com> Co-authored-by:
Richard Biener <rguenther@suse.de> gcc/ PR tree-optimization/117093 * match.pd: Extend (bit_insert @0 (BIT_FIELD_REF@2 @1 @rsize @rpos) @ipos) to allow type differences between @0 and @1 due to view converts. gcc/testsuite/ PR tree-optimization/117093 * gcc.dg/tree-ssa/pr117093.c: New test.
-
John David Anglin authored
2024-11-15 John David Anglin <danglin@gcc.gnu.org> gcc/ChangeLog: PR target/117564 * config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.
-
Jan Hubicka authored
gcc/fortran/ChangeLog: * trans-expr.cc (gfc_trans_subcomponent_assign): Fix type of malloc parameter.
-
Joseph Myers authored
Bug 117164 is an ICE on an existing test with -std=gnu23 involving a nested function returning a variable-size structure (and I think the last bug needing to be resolved before switching to -std=gnu23 as the default, as without fixing this would be a clear regression from a change in default). The problem is a GIMPLE verification failure where (after type remapping from inlining / cloning) the return type of the function no longer exactly matches the type to which it is assigned (these types use structural equality, which means GIMPLE verification can't use TYPE_CANONICAL and expects an exact match). Specifically, the nested function itself is *not* inlined (the -fno-inline-small-functions in the original test nested-func-12.c, I think, or the noinline attribute in some of my variant tests), but the function containing it is either cloned (the --param ipa-cp-eval-threshold=0 in the original test) or inlined. (I'm not sure what role -fno-guess-branch-probability plays in getting the right situation for the ICE; maybe affecting when inlining or cloning is considered profitable?) There is in fact existing code in tree-nested.cc to prevent inlining of a function containing a nested function with variably modified *argument* types. I think the same issue of ensuring consistency of types means such prevention should also apply for a variably modified return type. Furthermore, exactly the same problem applies for cloning for other reasons as it does for inlining. Thus, change the logic to include variably modified return types for nested functions alongside those for arguments of those functions as a reason not to inline, and also add the noclone attribute in these cases. Bootstrapped with no regressions for x86-64-pc-linux-gnu. PR c/117164 gcc/ * tree-nested.cc: Include "attribs.h". (check_for_nested_with_variably_modified): Also return true for variably modified return type. (create_nesting_tree): If check_for_nested_with_variably_modified returns true, also add noclone attribute. gcc/testsuite/ * gcc.dg/nested-func-13.c, gcc.dg/nested-func-14.c: gcc.dg/nested-func-15.c, gcc.dg/nested-func-16.c, gcc.dg/nested-func-17.c: New tests.
-
Richard Biener authored
Now that we no longer exercise vcond{,u,eq} patterns remove unused infrastructure. * optabs-query.h (get_vcond_icode): Remove. (get_vcond_eq_icode): Likewise. * optabs-tree.h (expand_vec_cond_expr_p): Remove code argument. * optabs-tree.cc (expand_vec_cond_expr_p): Likewise. (vcond_icode_p): Remove. (vcond_eq_icode_p): Likewise. * optabs.h (can_vcond_compare_p): Remove. * optabs.cc (can_vcond_compare_p): Likewise.
-
Christophe Lyon authored
Some of the musttail tests (eg musttail7.c) fail on arm-eabi because check_effective_target_musttail pass, but the actual code in the test is rejected. The reason is that on arm-eabi with the default configuration, the compiler targets armv4t for which TARGET_INTERWORK is true, making arm_function_ok_for_sibcall reject a tail-call candidate if TREE_ASM_WRITTEN (decl) is false. For more recent architecture versions, TARGET_INTERWORK is false, hence the problem was not seen on all arm configurations. musttail7.c is in turn rejected because f2 is recursive, so TREE_ASM_WRITTEN is false. However, the same code used in check_effective_target_musttail is not recursive and the function body for foo has TREE_ASM_WRITTEN == true. The simplest fix is to remove the (empty) body for foo () in check_effective_target_musttail. For consistency, do the same with check_effective_target_tail_call. gcc/testsuite/ChangeLog: PR testsuite/116080 * lib/target-supports.exp (check_effective_target_tail_call): Remove foo's body. (check_effective_target_musttail): Likewise.
-
Richard Biener authored
ISEL was introduced to translate vector comparison and vector condition combinations back to internal function calls mapping to one of the vcond[u][_eq][_mask] and vec_cmp[_eq] optabs. With removing the legacy non-mask vcond expanders we now rely on all vector comparisons and vector conditions to be directly expandable. The following keeps the intermediate internal function rewrite given gimple_expand_vec_cond_expr still performs some optimizations which eventually should move to vector lowering or match.pd, but simplifies it down to always expand VEC_COND_EXPR to .VCOND_MASK. * gimple-isel.cc (gimple_expand_vec_cond_expr): If not simplifying or lowering, always expand to .VCOND_MASK. (pass_gimple_isel::execute): Simplify.
-
Richard Biener authored
The following makes sure to lower all VEC_COND_EXPRs that we cannot trivially expand, likewise for comparisons. In particular no longer try to combine both in fancy ways. * tree-vect-generic.cc (expand_vector_comparison): Lower vector comparisons that we cannot trivially expand. Remove code dealing with uses in VEC_COND_EXPRs. (expand_vector_condition): Lower vector conditions that we cannot trivially expand. Remove code dealing with comparison mask definitions. (expand_vector_operation): Drop dce_ssa_names. (expand_vector_operations_1): Likewise.
-
Florian Weimer authored
After commit 8833389e. gcc/c-family/ * c.opt.urls: Regenerate.
-
Pan Li authored
The test files of scalar SAT_SUB only has numbers as the suffix. Rearrange the file name to -{form number}-{target-type}. For example, test form 3 for uint32_t SAT_SUB will have -3-u32.c for asm check and -run-3-u32.c for the run test. Meanwhile, all related test files moved to riscv/sat/. The below test suites are passed for this patch. * The rv64gcv fully regression test. gcc/testsuite/ChangeLog: * gcc.target/riscv/sat_u_sub-2.c: Move to... * gcc.target/riscv/sat/sat_u_sub-1-u16.c: ...here. * gcc.target/riscv/sat_u_sub-3.c: Move to... * gcc.target/riscv/sat/sat_u_sub-1-u32.c: ...here. * gcc.target/riscv/sat_u_sub-4.c: Move to... * gcc.target/riscv/sat/sat_u_sub-1-u64.c: ...here. * gcc.target/riscv/sat_u_sub-1.c: Move to... * gcc.target/riscv/sat/sat_u_sub-1-u8.c: ...here. * gcc.target/riscv/sat_u_sub-38.c: Move to... * gcc.target/riscv/sat/sat_u_sub-10-u16.c: ...here. * gcc.target/riscv/sat_u_sub-39.c: Move to... * gcc.target/riscv/sat/sat_u_sub-10-u32.c: ...here. * gcc.target/riscv/sat_u_sub-40.c: Move to... * gcc.target/riscv/sat/sat_u_sub-10-u64.c: ...here. * gcc.target/riscv/sat_u_sub-37.c: Move to... * gcc.target/riscv/sat/sat_u_sub-10-u8.c: ...here. * gcc.target/riscv/sat_u_sub-42.c: Move to... * gcc.target/riscv/sat/sat_u_sub-11-u16.c: ...here. * gcc.target/riscv/sat_u_sub-43.c: Move to... * gcc.target/riscv/sat/sat_u_sub-11-u32.c: ...here. * gcc.target/riscv/sat_u_sub-44.c: Move to... * gcc.target/riscv/sat/sat_u_sub-11-u64.c: ...here. * gcc.target/riscv/sat_u_sub-41.c: Move to... * gcc.target/riscv/sat/sat_u_sub-11-u8.c: ...here. * gcc.target/riscv/sat_u_sub-46.c: Move to... * gcc.target/riscv/sat/sat_u_sub-12-u16.c: ...here. * gcc.target/riscv/sat_u_sub-47.c: Move to... * gcc.target/riscv/sat/sat_u_sub-12-u32.c: ...here. * gcc.target/riscv/sat_u_sub-48.c: Move to... * gcc.target/riscv/sat/sat_u_sub-12-u64.c: ...here. * gcc.target/riscv/sat_u_sub-45.c: Move to... * gcc.target/riscv/sat/sat_u_sub-12-u8.c: ...here. * gcc.target/riscv/sat_u_sub-6.c: Move to... * gcc.target/riscv/sat/sat_u_sub-2-u16.c: ...here. * gcc.target/riscv/sat_u_sub-7.c: Move to... * gcc.target/riscv/sat/sat_u_sub-2-u32.c: ...here. * gcc.target/riscv/sat_u_sub-8.c: Move to... * gcc.target/riscv/sat/sat_u_sub-2-u64.c: ...here. * gcc.target/riscv/sat_u_sub-5.c: Move to... * gcc.target/riscv/sat/sat_u_sub-2-u8.c: ...here. * gcc.target/riscv/sat_u_sub-10.c: Move to... * gcc.target/riscv/sat/sat_u_sub-3-u16.c: ...here. * gcc.target/riscv/sat_u_sub-11.c: Move to... * gcc.target/riscv/sat/sat_u_sub-3-u32.c: ...here. * gcc.target/riscv/sat_u_sub-12.c: Move to... * gcc.target/riscv/sat/sat_u_sub-3-u64.c: ...here. * gcc.target/riscv/sat_u_sub-9.c: Move to... * gcc.target/riscv/sat/sat_u_sub-3-u8.c: ...here. * gcc.target/riscv/sat_u_sub-14.c: Move to... * gcc.target/riscv/sat/sat_u_sub-4-u16.c: ...here. * gcc.target/riscv/sat_u_sub-15.c: Move to... * gcc.target/riscv/sat/sat_u_sub-4-u32.c: ...here. * gcc.target/riscv/sat_u_sub-16.c: Move to... * gcc.target/riscv/sat/sat_u_sub-4-u64.c: ...here. * gcc.target/riscv/sat_u_sub-13.c: Move to... * gcc.target/riscv/sat/sat_u_sub-4-u8.c: ...here. * gcc.target/riscv/sat_u_sub-18.c: Move to... * gcc.target/riscv/sat/sat_u_sub-5-u16.c: ...here. * gcc.target/riscv/sat_u_sub-19.c: Move to... * gcc.target/riscv/sat/sat_u_sub-5-u32.c: ...here. * gcc.target/riscv/sat_u_sub-20.c: Move to... * gcc.target/riscv/sat/sat_u_sub-5-u64.c: ...here. * gcc.target/riscv/sat_u_sub-17.c: Move to... * gcc.target/riscv/sat/sat_u_sub-5-u8.c: ...here. * gcc.target/riscv/sat_u_sub-22.c: Move to... * gcc.target/riscv/sat/sat_u_sub-6-u16.c: ...here. * gcc.target/riscv/sat_u_sub-23.c: Move to... * gcc.target/riscv/sat/sat_u_sub-6-u32.c: ...here. * gcc.target/riscv/sat_u_sub-24.c: Move to... * gcc.target/riscv/sat/sat_u_sub-6-u64.c: ...here. * gcc.target/riscv/sat_u_sub-21.c: Move to... * gcc.target/riscv/sat/sat_u_sub-6-u8.c: ...here. * gcc.target/riscv/sat_u_sub-26.c: Move to... * gcc.target/riscv/sat/sat_u_sub-7-u16.c: ...here. * gcc.target/riscv/sat_u_sub-27.c: Move to... * gcc.target/riscv/sat/sat_u_sub-7-u32.c: ...here. * gcc.target/riscv/sat_u_sub-28.c: Move to... * gcc.target/riscv/sat/sat_u_sub-7-u64.c: ...here. * gcc.target/riscv/sat_u_sub-25.c: Move to... * gcc.target/riscv/sat/sat_u_sub-7-u8.c: ...here. * gcc.target/riscv/sat_u_sub-30.c: Move to... * gcc.target/riscv/sat/sat_u_sub-8-u16.c: ...here. * gcc.target/riscv/sat_u_sub-31.c: Move to... * gcc.target/riscv/sat/sat_u_sub-8-u32.c: ...here. * gcc.target/riscv/sat_u_sub-32.c: Move to... * gcc.target/riscv/sat/sat_u_sub-8-u64.c: ...here. * gcc.target/riscv/sat_u_sub-29.c: Move to... * gcc.target/riscv/sat/sat_u_sub-8-u8.c: ...here. * gcc.target/riscv/sat_u_sub-34.c: Move to... * gcc.target/riscv/sat/sat_u_sub-9-u16.c: ...here. * gcc.target/riscv/sat_u_sub-35.c: Move to... * gcc.target/riscv/sat/sat_u_sub-9-u32.c: ...here. * gcc.target/riscv/sat_u_sub-36.c: Move to... * gcc.target/riscv/sat/sat_u_sub-9-u64.c: ...here. * gcc.target/riscv/sat_u_sub-33.c: Move to... * gcc.target/riscv/sat/sat_u_sub-9-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-2.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-3.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-4.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-1.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-38.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-10-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-39.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-10-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-40.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-10-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-37.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-10-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-42.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-11-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-43.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-11-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-44.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-11-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-41.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-11-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-46.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-12-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-47.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-12-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-48.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-12-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-45.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-12-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-6.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-7.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-8.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-5.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-10.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-11.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-12.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-9.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-14.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-15.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-16.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-13.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-4-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-18.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-5-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-19.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-5-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-20.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-5-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-17.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-5-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-22.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-6-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-23.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-6-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-24.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-6-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-21.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-6-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-26.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-7-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-27.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-7-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-28.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-7-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-25.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-7-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-30.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-8-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-31.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-8-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-32.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-8-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-29.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-8-u8.c: ...here. * gcc.target/riscv/sat_u_sub-run-34.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-9-u16.c: ...here. * gcc.target/riscv/sat_u_sub-run-35.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-9-u32.c: ...here. * gcc.target/riscv/sat_u_sub-run-36.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-9-u64.c: ...here. * gcc.target/riscv/sat_u_sub-run-33.c: Move to... * gcc.target/riscv/sat/sat_u_sub-run-9-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-2_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-2_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-2_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-2_4.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u16-4.c: ...here. * gcc.target/riscv/sat_u_sub_imm-2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-3_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-3_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-3_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-3_4.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u32-4.c: ...here. * gcc.target/riscv/sat_u_sub_imm-3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-4_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u64-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-4_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u64-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-4.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-1_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-1_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-1_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-1_4.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u8-4.c: ...here. * gcc.target/riscv/sat_u_sub_imm-1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-1-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-6_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-6_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-6_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u16-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-6.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-15_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-15_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-7_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u32-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-7.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-8_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u64-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-16.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-5_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-5_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-5_3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u8-3.c: ...here. * gcc.target/riscv/sat_u_sub_imm-5.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-2-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-10_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u16-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-10_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u16-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-10.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-11_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u32-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-11_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u32-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-11.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-12.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-9_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u8-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-9_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u8-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-9.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-3-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-14_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u16-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-14_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u16-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-14.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-7_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u32-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-7_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u32-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-15.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-8.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-13_1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u8-1.c: ...here. * gcc.target/riscv/sat_u_sub_imm-13_2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u8-2.c: ...here. * gcc.target/riscv/sat_u_sub_imm-13.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-4-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-2.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-3.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-4.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-1.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-6.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-7.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-8.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-5.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-10.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-11.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-12.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-9.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-14.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-15.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-16.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_sub_imm-run-13.c: Move to... * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u8.c: ...here. Signed-off-by:
Pan Li <pan2.li@intel.com>
-
Florian Weimer authored
Empirically, omitted parameter names are difficult to catch in code review. With this change, projects can build with -Werror=missing-parameter-name, to avoid this unnecessary incompatibility with older GCC versions. The existing -pedantic-errors option is too broad for that because it also flags widely used and widely available GCC extensions. Likewise for -Werror=c11-c23-compat. gcc/c-family/ * c-opts.cc (c_common_post_options): Initialize warn_missing_parameter_name. * c.opt (Wmissing-parameter-name): New. gcc/c/ * c-decl.cc (store_parm_decls_newstyle): Use OPT_Wmissing_parameter_name for missing parameter name warning. * c-errors.cc (pedwarn_c11): Enable fine-grained warning control via the option_id argument. gcc/ * doc/invoke.texi: Document Wmissing-parameter-name. gcc/testsuite/ * gcc.dg/Wmissing-parameter-name-1.c: New test. * gcc.dg/Wmissing-parameter-name-2.c: New test. * gcc.dg/Wmissing-parameter-name-3.c: New test.
-
Florian Weimer authored
The section name might the user a hint of what is going on. gcc/ * varasm.cc (get_section): Include name of section in diagnostic messages.
-
Pan Li authored
After we create a isolated folder to hold all SAT scalar test, we have fully control of what optimization options passing to the testcase. Thus, it is better to remove the unnecessary work around for flto option, as well as the -O3 option for each cases. The riscv.exp will pass sorts of different optimization options for each case. The below test suites are passed for this patch. * The rv64gcv fully regression test. It is test only patch and obvious up to a point, will commit it directly if no comments in next 48H. gcc/testsuite/ChangeLog: * gcc.target/riscv/sat/sat_s_add-1-i16.c: Remove flto dg-skip workaround and -O3 option. * gcc.target/riscv/sat/sat_s_add-1-i32.c: Ditto. * gcc.target/riscv/sat/sat_s_add-1-i64.c: Ditto. * gcc.target/riscv/sat/sat_s_add-1-i8.c: Ditto. * gcc.target/riscv/sat/sat_s_add-2-i16.c: Ditto. * gcc.target/riscv/sat/sat_s_add-2-i32.c: Ditto. * gcc.target/riscv/sat/sat_s_add-2-i64.c: Ditto. * gcc.target/riscv/sat/sat_s_add-2-i8.c: Ditto. * gcc.target/riscv/sat/sat_s_add-3-i16.c: Ditto. * gcc.target/riscv/sat/sat_s_add-3-i32.c: Ditto. * gcc.target/riscv/sat/sat_s_add-3-i64.c: Ditto. * gcc.target/riscv/sat/sat_s_add-3-i8.c: Ditto. * gcc.target/riscv/sat/sat_s_add-4-i16.c: Ditto. * gcc.target/riscv/sat/sat_s_add-4-i32.c: Ditto. * gcc.target/riscv/sat/sat_s_add-4-i64.c: Ditto. * gcc.target/riscv/sat/sat_s_add-4-i8.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-1-1.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-1.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-2-1.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-2.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-3-1.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-3.c: Ditto. * gcc.target/riscv/sat/sat_s_add_imm-4.c: Ditto. * gcc.target/riscv/sat/sat_u_add-1-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-1-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-1-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-1-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add-2-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-2-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-2-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-2-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add-3-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-3-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-3-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-3-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add-4-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-4-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-4-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-4-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add-5-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-5-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-5-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-5-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add-6-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add-6-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add-6-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add-6-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-1-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-1-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-1-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-1-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-2-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-2-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-2-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-2-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-3-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-3-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-3-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-3-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-4-u16.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-4-u32.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-4-u64.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm-4-u8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c: Ditto. * gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c: Ditto. Signed-off-by:
Pan Li <pan2.li@intel.com> Signed-off-by:
Pan Li <pan2.li@intel.com>
-
Jakub Jelinek authored
These tests are valid C++11, so we can run them in C++11 too. 2024-11-15 Jakub Jelinek <jakub@redhat.com> * g++.dg/tree-ssa/pr116868.C: Change effective target from c++14 to c++11. * g++.dg/tree-ssa/pr96945.C: Likewise. * g++.dg/tree-ssa/pr110819.C: Likewise.
-
Jakub Jelinek authored
The following patch adds _Decimal64x type support. Our dfp libraries (dpd & libbid) can only handle decimal32, decimal64 and decimal128 formats and I don't see that changing any time soon, so the following patch just hardcodes that _Decimal64x has the same mode as _Decimal128 (but is a distinct type). In the unlikely event some target would introduce something different that can be of course changed with target hooks but would be an ABI change. _Decimal128x is optional and we don't have a wider decimal type, so that type isn't added. 2024-11-15 Jakub Jelinek <jakub@redhat.com> gcc/ * tree-core.h (enum tree_index): Add TI_DFLOAT64X_TYPE. * tree.h (dfloat64x_type_node): Define. * tree.cc (build_common_tree_nodes): Initialize dfloat64x_type_node. * builtin-types.def (BT_DFLOAT64X): New DEF_PRIMITIVE_TYPE. (BT_FN_DFLOAT64X): New DEF_FUNCTION_TYPE_0. (BT_FN_DFLOAT64X_CONST_STRING, BT_FN_DFLOAT64X_DFLOAT64X): New DEF_FUNCTION_TYPE_1. * builtins.def (BUILT_IN_FABSD64X, BUILT_IN_INFD64X, BUILT_IN_NAND64X, BUILT_IN_NANSD64X): New builtins. * builtins.cc (expand_builtin): Handle BUILT_IN_FABSD64X. (fold_builtin_0): Handle BUILT_IN_INFD64X. (fold_builtin_1): Handle BUILT_IN_FABSD64X. * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NAND64X and CFN_BUILT_IN_NANSD64X. * ginclude/float.h (DEC64X_MANT_DIG, DEC64X_MIN_EXP, DEC64X_MAX_EXP, DEC64X_MAX, DEC64X_EPSILON, DEC64X_MIN, DEC64X_TRUE_MIN, DEC64X_SNAN): Redefine. gcc/c-family/ * c-common.h (enum rid): Add RID_DFLOAT64X. * c-common.cc (c_global_trees): Fix comment typo. Add dfloat64x_type_node. (c_common_nodes_and_builtins): Handle RID_DFLOAT64X. * c-cppbuiltin.cc (c_cpp_builtins): Call builtin_define_decimal_float_constants also for dfloat64x_type_node if non-NULL. * c-lex.cc (interpret_float): Handle d64x suffixes. * c-pretty-print.cc (pp_c_floating_constant): Print d64x suffixes on dfloat64x_type_node typed constants. gcc/c/ * c-tree.h (enum c_typespec_keyword): Add cts_dfloat64x and adjust comment. * c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs, c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle RID_DFLOAT64X. (c_parser_postfix_expression): Handle _Decimal64x arguments in __builtin_tgmath. (warn_for_abs): Handle BUILT_IN_FABSD64X. * c-decl.cc (declspecs_add_type): Handle cts_dfloat64x and RID_DFLOAT64X. (finish_declspecs): Handle cts_dfloat64x. * c-typeck.cc (c_common_type): Handle dfloat64x_type_node. gcc/testsuite/ * gcc.dg/dfp/c11-decimal64x-1.c: New test. * gcc.dg/dfp/c11-decimal64x-2.c: New test. * gcc.dg/dfp/c23-decimal64x-1.c: New test. * gcc.dg/dfp/c23-decimal64x-2.c: New test. * gcc.dg/dfp/c23-decimal64x-3.c: New test. * gcc.dg/dfp/c23-decimal64x-4.c: New test. libcpp/ * expr.cc (interpret_float_suffix): Handle d64x and D64x suffixes, adjust comment.
-
Marek Polacek authored
This test mistakenly used two dg-do compile. Since it passes in C++11 as well, we can run it in C++11 and up. gcc/testsuite/ChangeLog: * g++.dg/tree-ssa/pr58483.C: Run in C++11 and up.
-
Pan Li authored
Move the scalar SAT_ADD includes both the signed and unsigned integer to the folder gcc.target/riscv/sat. According to the implementation the below options will be appended for each test cases. * -O2 * -O3 * -Ofast * -Os * -Oz Then we can see the test log similar as below: Executing on host: .../sat_s_add-1-i8.c ... -O2 -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -O3 -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Ofast -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Oz -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Os -march=rv64gc -S -o sat_s_add-1-i8.s The below test suites are passed for this patch. * The rv64gcv fully regression test. Committed as pre-approved by kito. gcc/testsuite/ChangeLog: * gcc.target/riscv/riscv.exp: Add new folder sat under riscv and add 5 options for each sat test. * gcc.target/riscv/sat_s_add-1-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i16.c: ...here. * gcc.target/riscv/sat_s_add-1-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i32.c: ...here. * gcc.target/riscv/sat_s_add-1-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i64.c: ...here. * gcc.target/riscv/sat_s_add-1-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i8.c: ...here. * gcc.target/riscv/sat_s_add-2-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i16.c: ...here. * gcc.target/riscv/sat_s_add-2-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i32.c: ...here. * gcc.target/riscv/sat_s_add-2-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i64.c: ...here. * gcc.target/riscv/sat_s_add-2-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i8.c: ...here. * gcc.target/riscv/sat_s_add-3-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i16.c: ...here. * gcc.target/riscv/sat_s_add-3-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i32.c: ...here. * gcc.target/riscv/sat_s_add-3-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i64.c: ...here. * gcc.target/riscv/sat_s_add-3-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i8.c: ...here. * gcc.target/riscv/sat_s_add-4-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i16.c: ...here. * gcc.target/riscv/sat_s_add-4-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i32.c: ...here. * gcc.target/riscv/sat_s_add-4-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i64.c: ...here. * gcc.target/riscv/sat_s_add-4-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i8.c: ...here. * gcc.target/riscv/sat_s_add_imm-1-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-1-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-2-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-2-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-2.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-2.c: ...here. * gcc.target/riscv/sat_s_add_imm-3-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-3-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-3.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-3.c: ...here. * gcc.target/riscv/sat_s_add_imm-4.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-4.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-2.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-2.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-3.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-3.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-4.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-4.c: ...here. * gcc.target/riscv/sat_u_add-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u16.c: ...here. * gcc.target/riscv/sat_u_add-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u32.c: ...here. * gcc.target/riscv/sat_u_add-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u64.c: ...here. * gcc.target/riscv/sat_u_add-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u8.c: ...here. * gcc.target/riscv/sat_u_add-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u16.c: ...here. * gcc.target/riscv/sat_u_add-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u32.c: ...here. * gcc.target/riscv/sat_u_add-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u64.c: ...here. * gcc.target/riscv/sat_u_add-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u8.c: ...here. * gcc.target/riscv/sat_u_add-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u16.c: ...here. * gcc.target/riscv/sat_u_add-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u32.c: ...here. * gcc.target/riscv/sat_u_add-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u64.c: ...here. * gcc.target/riscv/sat_u_add-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u8.c: ...here. * gcc.target/riscv/sat_u_add-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u16.c: ...here. * gcc.target/riscv/sat_u_add-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u32.c: ...here. * gcc.target/riscv/sat_u_add-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u64.c: ...here. * gcc.target/riscv/sat_u_add-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u8.c: ...here. * gcc.target/riscv/sat_u_add-5-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u16.c: ...here. * gcc.target/riscv/sat_u_add-5-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u32.c: ...here. * gcc.target/riscv/sat_u_add-5-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u64.c: ...here. * gcc.target/riscv/sat_u_add-5-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u8.c: ...here. * gcc.target/riscv/sat_u_add-6-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u16.c: ...here. * gcc.target/riscv/sat_u_add-6-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u32.c: ...here. * gcc.target/riscv/sat_u_add-6-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u64.c: ...here. * gcc.target/riscv/sat_u_add-6-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-1.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-10.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-11.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-12.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-13.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-14.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-15.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-17.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-18.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-19.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-2.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-20.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-21.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-22.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-23.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-24.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-25.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-26.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-27.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-28.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-29.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-3.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-30.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-31.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-33.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-34.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-35.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-36.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-37.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-38.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-39.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-4.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-40.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-41.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-42.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-43.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-44.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-45.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-46.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-47.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-48.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-49.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-5.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-50.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-51.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-52.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-53.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-54.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-55.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-56.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-57.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-58.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-59.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-6.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-60.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-7.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-9.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c: ...here. * gcc.target/riscv/sat/sat_arith.h: New test. * gcc.target/riscv/sat/sat_arith_data.h: New test. * gcc.target/riscv/sat/scalar_sat_binary.h: New test. * gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h: New test. Signed-off-by:
Pan Li <pan2.li@intel.com>
-
Kewen Lin authored
The current handlings in rs6000_emit_vector_compare is a bit complicated to me, especially after we emit vector float comparison insn with the given code directly. So it's better to refactor the handlings of vector integer comparison here. This is part 5, it's to refactor all the handlings of vector integer comparison to make it neat. This patch doesn't introduce any functionality change. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the handlings of vector integer comparison.
-
Kewen Lin authored
The current handlings in rs6000_emit_vector_compare is a bit complicated to me, especially after we emit vector float comparison insn with the given code directly. So it's better to refactor the handlings of vector integer comparison here. This is part 4, it's to rework the handlings on GE/GEU/LE/LEU, also make the function not recursive any more. This patch doesn't introduce any functionality change. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the handlings for operators GE/GEU/LE/LEU.
-
Kewen Lin authored
The current handlings in rs6000_emit_vector_compare is a bit complicated to me, especially after we emit vector float comparison insn with the given code directly. So it's better to refactor the handlings of vector integer comparison here. This is part 3, it's to refactor the handlings on NE. This patch doesn't introduce any functionality change. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the handlings for operator NE.
-
Kewen Lin authored
The current handlings in rs6000_emit_vector_compare is a bit complicated to me, especially after we emit vector float comparison insn with the given code directly. So it's better to refactor the handlings of vector integer comparison here. This is part 2, it's to refactor the handlings on LT and LTU. This patch doesn't introduce any functionality change. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the handlings for operators LT and LTU.
-
Kewen Lin authored
The current handlings in rs6000_emit_vector_compare is a bit complicated to me, especially after we emit vector float comparison insn with the given code directly. So it's better to refactor the handlings of vector integer comparison here. This is part 1, it's to remove the helper function rs6000_emit_vector_compare_inner and move the logics into rs6000_emit_vector_compare. This patch doesn't introduce any functionality change. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Remove. (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/ GT/GTU directly.
-
Kewen Lin authored
All kinds of vector float comparison operators have been supported in a rtl comparison pattern as vector.md, we can just emit an rtx comparison insn with the given comparison operator in function rs6000_emit_vector_compare instead of checking and handling the reverse condition cases. This is part 4, it further checks for comparison opeators LT/UNGE. In rs6000_emit_vector_compare, for the handling of LT, it switches to use code GT, swaps operands and try again, it's exactly the same as what we have in vector.md: ; lt(a,b) = gt(b,a) As to UNGE, in rs6000_emit_vector_compare, it uses reversed code LT and further operates on the result with one_cmpl, it's also the same as what's in vector.md: ; unge(a,b) = ~lt(a,b) This patch should not have any functionality change too. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Emit rtx comparison for operators LT/UNGE of MODE_VECTOR_FLOAT directly. (rs6000_emit_vector_compare): Move assertion of no MODE_VECTOR_FLOAT to function beginning.
-
Kewen Lin authored
All kinds of vector float comparison operators have been supported in a rtl comparison pattern as vector.md, we can just emit an rtx comparison insn with the given comparison operator in function rs6000_emit_vector_compare instead of checking and handling the reverse condition cases. This is part 3, it further checks for comparison opeators LE/UNGT. In rs6000_emit_vector_compare, UNGT is handled with reversed code LE and inverting with one_cmpl_optab, LE is handled with LT ior EQ, while in vector.md, we have the support: ; le(a,b) = ge(b,a) ; ungt(a,b) = ~le(a,b) The associated test case shows it's an improvement. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx comparison for operators LE/UNGT of MODE_VECTOR_FLOAT directly. gcc/testsuite/ChangeLog: * gcc.target/powerpc/vcond-fp.c: New test.
-
Kewen Lin authored
All kinds of vector float comparison operators have been supported in a rtl comparison pattern as vector.md, we can just emit an rtx comparison insn with the given comparison operator in function rs6000_emit_vector_compare instead of checking and handling the reverse condition cases. This is part 2, it further checks for comparison opeators NE/UNLE/UNLT. In rs6000_emit_vector_compare, they are handled with reversed code which is queried from function reverse_condition_maybe_unordered and inverting with one_cmpl_optab. It's the same as what we have in vector.md: ; ne(a,b) = ~eq(a,b) ; unle(a,b) = ~gt(a,b) ; unlt(a,b) = ~ge(a,b) The operators on the right side have been supported in part 1. This patch should not have any functionality change too. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx comparison for operators NE/UNLE/UNLT of MODE_VECTOR_FLOAT directly.
-
Kewen Lin authored
All kinds of vector float comparison operators have been supported in a rtl comparison pattern as vector.md, we can just emit an rtx comparison insn with the given comparison operator in function rs6000_emit_vector_compare instead of checking and handling the reverse condition cases. This is part 1, it only handles the operators which are already emitted with an rtx comparison previously in function rs6000_emit_vector_compare_inner, they are EQ/GT/GE/ORDERED/ UNORDERED/UNEQ/LTGT. There is no functionality change. With this change, rs6000_emit_vector_compare_inner would only work for vector integer comparison handling, it would be cleaned up later in vector integer comparison rework. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Move MODE_VECTOR_FLOAT handlings out. (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/GT/ GE/UNORDERED/ORDERED/UNEQ/LTGT of MODE_VECTOR_FLOAT directly, and adjust one call site of rs6000_emit_vector_compare_inner to rs6000_emit_vector_compare.
-
GCC Administrator authored
-
Jonathan Wakely authored
libstdc++-v3/ChangeLog: * include/bits/stl_list.h (list::emplace_back): Fix indentation.
-
- Nov 14, 2024
-
-
Jeff Law authored
Updated version of my prior patch to fix type attributes on the pre-allocation vector move pattern. This version just adds a suitable set of attributes to a second pattern that was obviously wrong. Passed on my tester for rv64 and rv32 crosses. Bootstrapped and regression tested on riscv64-linux-gnu as well. -- So I was looking into a horrific schedule for SAD a week or so ago and came across this gem. Basically we were treating a vector load as a vector move from a scheduling standpoint during sched1. Naturally we didn't expose much ILP during sched1. That in turn caused the register allocator to pack the pseudos onto the physical vector registers tightly. regrename didn't do anything useful and the resulting code had too many false dependencies for sched2 to do anything useful. As a result we were taking many load->use stalls in x264's SAD routine. I'm confident the types are fine, but I'm a lot less sure about the other attributes (mode, avl_type_index, mode_idx). If someone could take a look at that, it'd be greatly appreciated. There's other cases that may need similar treatment. But I didn't want to muck with them until I understood those other attributes and how they need adjustments. In particular mov<VLS_AVL_REG:mode><P:mode>_lra appears to have the same problem. -- gcc/ * config/riscv/vector.md (mov<mode> pattern/splitter): Fix type and other attributes. (mov<VLS_AVL_REG:mode><P:mode>_lra): Likewise.
-
Harald Anlauf authored
Ensure that character length is set and passed by the call to a procedure when its dummy argument is NULL() with MOLD argument present, or set length to either 0 or the callee's expected character length. For assumed-rank dummies, use the rank of the MOLD argument. Generate temporaries for passed arguments when needed. PR fortran/104819 gcc/fortran/ChangeLog: * trans-expr.cc (conv_null_actual): Helper function to handle passing of NULL() to non-optional dummy arguments of non-bind(c) procedures. (gfc_conv_procedure_call): Use it for character dummies. gcc/testsuite/ChangeLog: * gfortran.dg/null_actual_6.f90: New test.
-