Skip to content
Snippets Groups Projects
  1. Apr 19, 2024
    • Jakub Jelinek's avatar
      libgcc: Another __divmodbitint4 bug fix [PR114762] · 36f4c8a9
      Jakub Jelinek authored
      The following testcase is miscompiled because the code to decrement
      vn on negative value with all ones in most significant limb (even partial)
      and 0 in most significant bit of the second most significant limb doesn't
      take into account the case where all bits below the most significant limb
      are zero.  This has been a problem both in the version before yesterday's
      commit where it has been done only if un was one shorter than vn before this
      decrement, and is now problem even more often when it is done earlier.
      When we decrement vn in such case and negate it, we end up with all 0s in
      the v2 value, so have both the problems with UB on __builtin_clz* and the
      expectations of the algorithm that the divisor has most significant bit set
      after shifting, plus when the decremented vn is 1 it can SIGFPE on division
      by zero even when it is not division by zero etc.  Other values shouldn't
      get 0 in the new most significant limb after negation, because the
      bitint_reduce_prec canonicalization should reduce prec if the second most
      significant limb is all ones and if that limb is all zeros, if at least
      one limb below it is non-zero, carry in will make it non-zero.
      
      The following patch fixes it by checking if at least one bit below the
      most significant limb is non-zero, in that case it decrements, otherwise
      it will do nothing (but e.g. for the un < vn case that also means the
      divisor is large enough that the result should be q 0 r u).
      
      2024-04-18  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libgcc/114762
      	* libgcc2.c (__divmodbitint4): Perform the decrement on negative
      	v with most significant limb all ones and the second least
      	significant limb with most significant bit clear always, regardless of
      	un < vn.
      
      	* gcc.dg/torture/bitint-70.c: New test.
      36f4c8a9
    • GCC Administrator's avatar
      Daily bump. · 85c187b2
      GCC Administrator authored
      85c187b2
  2. Apr 18, 2024
    • Jakub Jelinek's avatar
      libgcc: Fix up __divmodbitint4 [PR114755] · 82d6d385
      Jakub Jelinek authored
      The following testcase aborts on aarch64-linux but does not on x86_64-linux.
      In both cases there is UB in the __divmodbitint4 implemenetation.
      When the divisor is negative with most significant limb (even when partial)
      all ones, has at least 2 limbs and the second most significant limb has the
      most significant bit clear, when this number is negated, it will have 0
      in the most significant limb.
      Already in the PR114397 r14-9592 fix I was dealing with such divisors, but
      thought the problem is only if because of that un < vn doesn't imply the
      quotient is 0 and remainder u.
      But as this testcase shows, the problem is with such divisors always.
      What happens is that we use __builtin_clz* on the most significant limb,
      and assume it will not be 0 because that is UB for the builtins.
      Normally the most significant limb of the divisor shouldn't be 0, as
      guaranteed by the bitint_reduce_prec e.g. for the positive numbers, unless
      the divisor is just 0 (but for vn == 1 we have special cases).
      
      The following patch moves the handling of this corner case a few lines
      earlier before the un < vn check, because adjusting the vn later is harder.
      
      2024-04-18  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libgcc/114755
      	* libgcc2.c (__divmodbitint4): Perform the decrement on negative
      	v with most significant limb all ones and the second least
      	significant limb with most significant bit clear always, regardless of
      	un < vn.
      
      	* gcc.dg/torture/bitint-69.c: New test.
      82d6d385
  3. Apr 16, 2024
  4. Apr 15, 2024
    • Jakub Jelinek's avatar
      m68k: Quiet up cppcheck warning [PR114689] · f8409c31
      Jakub Jelinek authored
      cppcheck apparently warns on the | !!sticky part of the expression and
      using | (!!sticky) quiets it up (it is correct as is).
      The following patch adds the ()s, and also adds them around mant >> 1 just
      in case it makes it clearer to all readers that the expression is parsed
      that way already.
      
      2024-04-15  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libgcc/114689
      	* config/m68k/fpgnulib.c (__truncdfsf2): Add parentheses around
      	!!sticky bitwise or operand to quiet up cppcheck.  Add parentheses
      	around mant >> 1 bitwise or operand.
      f8409c31
  5. Apr 11, 2024
  6. Apr 10, 2024
    • Andre Vieira's avatar
      aarch64: Add support for _BitInt · 5aa3fec3
      Andre Vieira authored
      This patch adds support for C23's _BitInt for the AArch64 port when compiling
      for little endianness.  Big Endianness requires further target-agnostic
      support and we therefor disable it for now.
      
      gcc/ChangeLog:
      
      	* config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
      	(aarch64_bitint_type_info): New function.
      	(aarch64_return_in_memory_1): Return large _BitInt's in memory.
      	(aarch64_function_arg_alignment): Adapt to correctly return the ABI
      	mandated alignment of _BitInt(N) where N > 128 as the alignment of
      	TImode.
      	(aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
      
      libgcc/ChangeLog:
      
      	* config/aarch64/t-softfp (softfp_extras): Add floatbitinthf,
      	floatbitintbf, floatbitinttf and fixtfbitint.
      	* config/aarch64/libgcc-softfp.ver (GCC_14.0.0): Add __floatbitinthf,
      	__floatbitintbf, __floatbitinttf and __fixtfbitint.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/aarch64/bitint-alignments.c: New test.
      	* gcc.target/aarch64/bitint-args.c: New test.
      	* gcc.target/aarch64/bitint-sizes.c: New test.
      	* gcc.target/aarch64/bitfield-bitint-abi.h: New header.
      	* gcc.target/aarch64/bitfield-bitint-abi-align16.c: New test.
      	* gcc.target/aarch64/bitfield-bitint-abi-align8.c: New test.
      5aa3fec3
    • GCC Administrator's avatar
      Daily bump. · 0753ae15
      GCC Administrator authored
      0753ae15
  7. Apr 09, 2024
  8. Apr 05, 2024
  9. Apr 04, 2024
    • Jørgen Kvalsvik's avatar
      Add condition coverage (MC/DC) · 08a52331
      Jørgen Kvalsvik authored
      This patch adds support in gcc+gcov for modified condition/decision
      coverage (MC/DC) with the -fcondition-coverage flag. MC/DC is a type of
      test/code coverage and it is particularly important for safety-critical
      applicaitons in industries like aviation and automotive. Notably, MC/DC
      is required or recommended by:
      
          * DO-178C for the most critical software (Level A) in avionics.
          * IEC 61508 for SIL 4.
          * ISO 26262-6 for ASIL D.
      
      From the SQLite webpage:
      
          Two methods of measuring test coverage were described above:
          "statement" and "branch" coverage. There are many other test
          coverage metrics besides these two. Another popular metric is
          "Modified Condition/Decision Coverage" or MC/DC. Wikipedia defines
          MC/DC as follows:
      
              * Each decision tries every possible outcome.
              * Each condition in a decision takes on every possible outcome.
              * Each entry and exit point is invoked.
              * Each condition in a decision is shown to independently affect
                the outcome of the decision.
      
          In the C programming language where && and || are "short-circuit"
          operators, MC/DC and branch coverage are very nearly the same thing.
          The primary difference is in boolean vector tests. One can test for
          any of several bits in bit-vector and still obtain 100% branch test
          coverage even though the second element of MC/DC - the requirement
          that each condition in a decision take on every possible outcome -
          might not be satisfied.
      
          https://sqlite.org/testing.html#mcdc
      
      MC/DC comes in different flavors, the most important being unique cause
      MC/DC and masking MC/DC. This patch implements masking MC/DC, which is
      works well with short circuiting semantics, and according to John
      Chilenski's "An Investigation of Three Forms of the Modified Condition
      Decision Coverage (MCDC) Criterion" (2001) is as good as unique cause at
      catching bugs.
      
      Whalen, Heimdahl, and De Silva "Efficient Test Coverage Measurement for
      MC/DC" describes an algorithm for finding the masking table from an AST
      walk, but my algorithm figures this out by analyzing the control flow
      graph.  The CFG is considered a reduced ordered binary decision diagram
      and an input vector a path through the BDD, which is recorded.  Specific
      edges will mask ("null out") the contribution from earlier path
      segments, which can be determined by finding short circuit endpoints.
      Masking is most easily understood as circuiting of terms in the
      reverse-ordered Boolean function, and the masked conditions do not
      affect the decision like short-circuited conditions do not affect the
      decision.
      
      A tag/discriminator mapping from gcond->uid is created during
      gimplification and made available through the function struct. The
      values are unimportant as long as basic conditions constructed from a
      single Boolean expression are given the same identifier. This happens in
      the breaking down of ANDIF/ORIF trees, so the coverage generally works
      well for frontends that create such trees.
      
      Like Whalen et al this implementation records coverage in fixed-size
      bitsets which gcov knows how to interpret. Recording conditions only
      requires a few bitwise operations per condition and is very fast, but
      comes with a limit on the number of terms in a single boolean
      expression; the number of bits in a gcov_unsigned_type (which is usually
      typedef'd to uint64_t). For most practical purposes this is acceptable,
      and by default a warning will be issued if gcc cannot instrument the
      expression.  This is a practical limitation in the implementation, and
      not a limitation of the algorithm, so support for more conditions can be
      supported by introducing arbitrary-sized bitsets.
      
      In action it looks pretty similar to the branch coverage. The -g short
      opt carries no significance, but was chosen because it was an available
      option with the upper-case free too.
      
      gcov --conditions:
      
              3:   17:void fn (int a, int b, int c, int d) {
              3:   18:    if ((a && (b || c)) && d)
      conditions covered 3/8
      condition  0 not covered (true false)
      condition  1 not covered (true)
      condition  2 not covered (true)
      condition  3 not covered (true)
              1:   19:        x = 1;
              -:   20:    else
              2:   21:        x = 2;
              3:   22:}
      
      gcov --conditions --json-format:
      
      "conditions": [
          {
              "not_covered_false": [
                  0
              ],
              "count": 8,
              "covered": 3,
              "not_covered_true": [
                  0,
                  1,
                  2,
                  3
              ]
          }
      ],
      
      Expressions with constants may be heavily rewritten before it reaches
      the gimplification, so constructs like int x = a ? 0 : 1 becomes
      _x = (_a == 0). From source you would expect coverage, but it gets
      neither branch nor condition coverage. The same applies to expressions
      like int x = 1 || a which are simply replaced by a constant.
      
      The test suite contains a lot of small programs and functions. Some of
      these were designed by hand to test for specific behaviours and graph
      shapes, and some are previously-failed test cases in other programs
      adapted into the test suite.
      
      gcc/ChangeLog:
      
      	* builtins.cc (expand_builtin_fork_or_exec): Check
      	condition_coverage_flag.
      	* collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
      	* common.opt: Add new options -fcondition-coverage and
      	-Wcoverage-too-many-conditions.
      	* doc/gcov.texi: Add --conditions documentation.
      	* doc/invoke.texi: Add -fcondition-coverage documentation.
      	* function.cc (free_after_compilation): Free cond_uids.
      	* function.h (struct function): Add cond_uids.
      	* gcc.cc: Link gcov on -fcondition-coverage.
      	* gcov-counter.def (GCOV_COUNTER_CONDS): New.
      	* gcov-dump.cc (tag_conditions): New.
      	* gcov-io.h (GCOV_TAG_CONDS): New.
      	(GCOV_TAG_CONDS_LENGTH): New.
      	(GCOV_TAG_CONDS_NUM): New.
      	* gcov.cc (class condition_info): New.
      	(condition_info::condition_info): New.
      	(condition_info::popcount): New.
      	(struct coverage_info): New.
      	(add_condition_counts): New.
      	(output_conditions): New.
      	(print_usage): Add -g, --conditions.
      	(process_args): Likewise.
      	(output_intermediate_json_line): Output conditions.
      	(read_graph_file): Read condition counters.
      	(read_count_file): Likewise.
      	(file_summary): Print conditions.
      	(accumulate_line_info): Accumulate conditions.
      	(output_line_details): Print conditions.
      	* gimplify.cc (next_cond_uid): New.
      	(reset_cond_uid): New.
      	(shortcut_cond_r): Set condition discriminator.
      	(tag_shortcut_cond): New.
      	(gimple_associate_condition_with_expr): New.
      	(shortcut_cond_expr): Set condition discriminator.
      	(gimplify_cond_expr): Likewise.
      	(gimplify_function_tree): Call reset_cond_uid.
      	* ipa-inline.cc (can_early_inline_edge_p): Check
      	condition_coverage_flag.
      	* ipa-split.cc (pass_split_functions::gate): Likewise.
      	* passes.cc (finish_optimization_passes): Likewise.
      	* profile.cc (struct condcov): New declaration.
      	(cov_length): Likewise.
      	(cov_blocks): Likewise.
      	(cov_masks): Likewise.
      	(cov_maps): Likewise.
      	(cov_free): Likewise.
      	(instrument_decisions): New.
      	(read_thunk_profile): Control output to file.
      	(branch_prob): Call find_conditions, instrument_decisions.
      	(init_branch_prob): Add total_num_conds.
      	(end_branch_prob): Likewise.
      	* tree-core.h (struct tree_exp): Add condition_uid.
      	* tree-profile.cc (struct conds_ctx): New.
      	(CONDITIONS_MAX_TERMS): New.
      	(EDGE_CONDITION): New.
      	(topological_cmp): New.
      	(index_of): New.
      	(single_p): New.
      	(single_edge): New.
      	(contract_edge_up): New.
      	(struct outcomes): New.
      	(conditional_succs): New.
      	(condition_index): New.
      	(condition_uid): New.
      	(masking_vectors): New.
      	(emit_assign): New.
      	(emit_bitwise_op): New.
      	(make_top_index_visit): New.
      	(make_top_index): New.
      	(paths_between): New.
      	(struct condcov): New.
      	(cov_length): New.
      	(cov_blocks): New.
      	(cov_masks): New.
      	(cov_maps): New.
      	(cov_free): New.
      	(find_conditions): New.
      	(struct counters): New.
      	(find_counters): New.
      	(resolve_counter): New.
      	(resolve_counters): New.
      	(instrument_decisions): New.
      	(tree_profiling): Check condition_coverage_flag.
      	(pass_ipa_tree_profile::gate): Likewise.
      	* tree.h (SET_EXPR_UID): New.
      	(EXPR_COND_UID): New.
      
      libgcc/ChangeLog:
      
      	* libgcov-merge.c (__gcov_merge_ior): New.
      
      gcc/testsuite/ChangeLog:
      
      	* lib/gcov.exp: Add condition coverage test function.
      	* g++.dg/gcov/gcov-18.C: New test.
      	* gcc.misc-tests/gcov-19.c: New test.
      	* gcc.misc-tests/gcov-20.c: New test.
      	* gcc.misc-tests/gcov-21.c: New test.
      	* gcc.misc-tests/gcov-22.c: New test.
      	* gcc.misc-tests/gcov-23.c: New test.
      08a52331
    • GCC Administrator's avatar
      Daily bump. · 88ce7fbc
      GCC Administrator authored
      88ce7fbc
  10. Apr 03, 2024
  11. Apr 02, 2024
    • Jakub Jelinek's avatar
      Fix up duplicated words mostly in comments, part 1 · 94792057
      Jakub Jelinek authored
      Like in r12-7519-g027e30414492d50feb2854aff38227b14300dc4b, I've done
      git grep -v 'long long\|optab optab\|template template\|double double' | grep ' \([a-zA-Z]\+\) \1 '
      
      This is just part of the changes, mostly for non-gcc directories.
      I'll try to get to the rest soon.  Obviously, the above command also
      finds cases which are correct as is and shouldn't be changed, so one
      needs to manually inspect everything.
      
      I'd hope most of it is pretty obvious, but the config/ and libstdc++-v3/
      hunks include a tweak in a license wording, though other copies of the
      similar license have the wording right.
      
      2024-04-02  Jakub Jelinek  <jakub@redhat.com>
      
      	* Makefile.tpl: Fix duplicated words; returns returns ->
      	returns.
      config/
      	* lcmessage.m4: Fix duplicated words; can can -> can,
      	package package -> package.
      libdecnumber/
      	* decCommon.c (decFinalize): Fix duplicated words in
      	comment; the the -> the.
      libgcc/
      	* unwind-dw2-fde.c (struct fde_accumulator): Fix duplicated
      	words in comment; is is -> is.
      libgfortran/
      	* configure.host: Fix duplicated words; the the -> the.
      libgm2/
      	* configure.host: Fix duplicated words; the the -> the.
      libgomp/
      	* libgomp.texi (OpenMP 5.2): Fix duplicated words; with with ->
      	with.
      	(omp_target_associate_ptr): Fix duplicated words; either either ->
      	either.
      	(omp_init_allocator): Fix duplicated words; be be -> be.
      	(omp_realloc): Fix duplicated words; is is -> is.
      	(OMP_ALLOCATOR): Fix duplicated words; other other -> other.
      	* priority_queue.h (priority_queue_multi_p): Fix duplicated words;
      	to to -> to.
      libiberty/
      	* regex.c (byte_re_match_2_internal): Fix duplicated words in comment;
      	next next -> next.
      	* dyn-string.c (dyn_string_init): Fix duplicated words in comment;
      	of of -> of.
      libitm/
      	* beginend.cc (GTM::gtm_thread::begin_transaction): Fix duplicated
      	words in comment; not not -> not to.
      libobjc/
      	* init.c (duplicate_classes): Fix duplicated words in comment; in in
      	-> in.
      	* sendmsg.c (__objc_prepare_dtable_for_class): Fix duplicated words
      	in comment; the the -> the.
      	* encoding.c (objc_layout_structure): Likewise.
      libstdc++-v3/
      	* acinclude.m4: Fix duplicated words; file file -> file can.
      	* configure.host: Fix duplicated words; the the -> the.
      libvtv/
      	* vtv_rts.cc (vtv_fail): Fix duplicated words; to to -> to.
      	* vtv_fail.cc (vtv_fail): Likewise.
      94792057
  12. Mar 26, 2024
  13. Mar 25, 2024
  14. Mar 23, 2024
  15. Mar 22, 2024
  16. Mar 21, 2024
    • Jakub Jelinek's avatar
      libgcc: Fix up bitint division [PR114397] · 59b6cece
      Jakub Jelinek authored
      The Knuth's division algorithm relies on the number of dividend limbs
      to be greater ore equal to number of divisor limbs, which is why
      I've added a special case for un < vn at the start of __divmodbitint4.
      Unfortunately, my assumption that it then implies abs(v) > abs(u) and
      so quotient must be 0 and remainder same as dividend is incorrect.
      This is because this check is done before negation of the operands.
      While bitint_reduce_prec reduces precision from clearly useless limbs,
      the problematic case is when the dividend is unsigned or non-negative
      and divisor is negative.  We can have limbs (from MS to LS):
      dividend:       0       M       ?...
      divisor:        -1      -N      ?...
      where M has most significant bit set and M >= N (if M == N then it
      also the following limbs matter) and the most significant limbs can
      be even partial.  In this case, the quotient should be -1 rather than
      0.  bitint_reduce_prec will reduce the precision of the dividend so
      that M is the most significant limb, but can't reduce precision of the
      divisor to more than having the -1 as most significant limb, because
      -N doesn't have the most significant bit set.
      
      The following patch fixes it by detecting this problematic case in the
      un < vn handling, and instead of assuming q is 0 and r is u will
      decrease vn by 1 because it knows the later code will negate the divisor
      and it can be then expressed after negation in one fewer limbs.
      
      2024-03-21  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libgcc/114397
      	* libgcc2.c (__divmodbitint4): Don't assume un < vn always means
      	abs(v) > abs(u), check for a special case of un + 1 == vn where
      	u is non-negative and v negative and after v's negation vn could
      	be reduced by 1.
      
      	* gcc.dg/torture/bitint-65.c: New test.
      59b6cece
    • GCC Administrator's avatar
      Daily bump. · af376184
      GCC Administrator authored
      af376184
  17. Mar 20, 2024
  18. Mar 16, 2024
  19. Mar 15, 2024
    • Jakub Jelinek's avatar
      libgcc: Fix quotient and/or remainder negation in __divmodbitint4 [PR114327] · a6dab195
      Jakub Jelinek authored
      While for __mulbitint3 we actually don't negate anything and perform the
      multiplication in unsigned style always, for __divmodbitint4 if the operands
      aren't unsigned and are negative, we negate them first and then try to
      negate them as needed at the end.
      quotient is negated if just one of the operands was negated and the other
      wasn't or vice versa, and remainder is negated if the first operand was
      negated.
      The case which doesn't work correctly is if due to limited range of the
      operands we perform the division/modulo in some smaller number of limbs
      and then extend it to the desired precision of the quotient and/or
      remainder results.  If they aren't negated, the extension is done with
      memset to 0, if they are negated, the extension was done with memset
      to -1.  The problem is that if the quotient or remainder is zero,
      then bitint_negate negates it again to zero (that is ok), but we should
      then extend with memset to 0, not memset to -1.
      
      The following patch achieves that by letting bitint_negate also check if
      the negated operand is zero and changes the memset argument based on that.
      
      2024-03-15  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libgcc/114327
      	* libgcc2.c (bitint_negate): Return UWtype bitwise or of all the limbs
      	before negation rather than void.
      	(__divmodbitint4): Determine whether to fill in the upper limbs after
      	negation based on whether bitint_negate returned 0 or non-zero, rather
      	then always filling with -1.
      
      	* gcc.dg/torture/bitint-63.c: New test.
      a6dab195
  20. Feb 23, 2024
  21. Feb 22, 2024
    • Kewen Lin's avatar
      rs6000: Neuter option -mpower{8,9}-vector [PR109987] · 438ef143
      Kewen Lin authored
      As PR109987 and its duplicated bugs show, -mno-power8-vector
      (and -mno-power9-vector) cause some problems and as Segher
      pointed out in [1] they are workaround options, so this patch
      is to remove -m{no,}-power{8,9}-options.  Like what we did
      for option -mdirect-move before, this patch still keep the
      corresponding internal flags and they are automatically set
      based on -mcpu.  The test suite update takes some efforts,
      it consists of some aspects:
        - effective target powerpc_p{8,9}vector_ok are removed
          and replaced with powerpc_vsx_ok.
        - Some cases having -mpower{8,9}-vector are updated with
          -mvsx, some of them already have -mdejagnu-cpu.  For
          those that don't have -mdejagnu-cpu, if -mdejagnu-cpu
          is needed for the test point, then it's appended;
          otherwise, add additional-options -mdejagnu-cpu=power{8,9}
          if has_arch_pwr{8,9} isn't satisfied.
        - Some test cases are updated with explicit -mvsx.
        - Some test cases with those two option mixed are adjusted
          to keep the test points, like -mpower8-vector
          -mno-power9-vector are updated with -mdejagnu-cpu=power8
          -mvsx etc.
        - Some test cases with -mno-power{8,9}-vector are updated
          by replacing -mno-power{8,9}-vector with -mno-vsx, or
          just removing it.
        - For some cases, we don't always specify -mdejagnu-cpu to
          avoid to restrict the testing coverage, it would check
          has_arch_pwr{8,9} and appended that as need.
        - For vect test cases run, it doesn't specify -mcpu=power9
          for power10 and up.
      
      Bootstrapped and regtested on:
        - powerpc64-linux-gnu P7/P8/P9 {-m32,-m64}
        - powerpc64le-linux-gnu P8/P9/P10
      
      Although it's stage4 now, as the discussion in PR113115 we
      are still eager to neuter these two options, so is it ok
      for trunk?
      
      [1] https://gcc.gnu.org/pipermail/gcc-patches/2022-January/589303.html
      
      	PR target/109987
      
      gcc/ChangeLog:
      
      	* config/rs6000/constraints.md (we): Update internal doc without
      	referring to option -mpower9-vector.
      	* config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
      	special handlings.
      	* config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
      	OTHER_P8_VECTOR_MASKS): Merge to ...
      	(OTHER_VSX_VECTOR_MASKS): ... here.
      	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
      	some error message handlings and explicit option mask adjustments on
      	explicit option power{8,9}-vector conflicting with other options.
      	(rs6000_print_isa_options): Update comments.
      	(rs6000_disable_incompatible_switches): Remove power{8,9}-vector
      	related array items and handlings.
      	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
      	special handlings.
      	* config/rs6000/rs6000.opt: Make option power{8,9}-vector as
      	WarnRemoved.
      	* doc/extend.texi: Remove documentation referring to option
      	-mpower8-vector.
      	* doc/invoke.texi: Remove documentation for option
      	-mpower{8,9}-vector and adjust some documentation referring to them.
      	* doc/md.texi: Update documentation for constraint we.
      	* doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
      
      libgcc/ChangeLog:
      
      	* config/rs6000/t-float128-hw: Replace options -mpower{8,9}-vector
      	with -mcpu=power9.
      	* configure.ac: Update use of option -mpower9-vector with
      	-mcpu=power9.
      	* configure: Regenerate.
      
      gcc/testsuite/ChangeLog:
      
      	* lib/target-supports.exp
      	(check_effective_target_powerpc_p8vector_ok): Remove.
      	(check_effective_target_powerpc_p9vector_ok): Remove.
      	(check_p8vector_hw_available): Replace -mpower8-vector with
      	-mcpu=power8.
      	(check_p9vector_hw_available): Replace -mpower9-vector with
      	-mcpu=power9.
      	(check_ppc_float128_hw_available): Likewise.
      	(check_vect_support_and_set_flags): Replace -mpower8-vector with
      	-mcpu=power8, replace -mpower9-vector with -mcpu=power9 or
      	nothing if check_power10_hw_available and place -mcpu=970 first
      	if needed to avoid possible overriding.
      	* g++.target/powerpc/altivec-19.C: Replace powerpc_p9vector_ok with
      	powerpc_vsx_ok and append -mvsx to dg-options.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-4.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-6.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-7.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-9.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-10.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-11.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-8.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-9.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-4.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-4.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-5.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-6.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-7.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-4.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-5.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-6.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-7.c: Likewise.
      	* gcc.target/powerpc/builtins-3-p9.c: Likewise.
      	* gcc.target/powerpc/byte-in-either-range-0.c: Likewise.
      	* gcc.target/powerpc/byte-in-either-range-1.c: Likewise.
      	* gcc.target/powerpc/byte-in-range-0.c: Likewise.
      	* gcc.target/powerpc/byte-in-range-1.c: Likewise.
      	* gcc.target/powerpc/byte-in-set-0.c: Likewise.
      	* gcc.target/powerpc/byte-in-set-1.c: Likewise.
      	* gcc.target/powerpc/byte-in-set-2.c: Likewise.
      	* gcc.target/powerpc/clone1.c: Likewise.
      	* gcc.target/powerpc/ctz-3.c: Likewise.
      	* gcc.target/powerpc/ctz-4.c: Likewise.
      	* gcc.target/powerpc/darn-0.c: Likewise.
      	* gcc.target/powerpc/darn-1.c: Likewise.
      	* gcc.target/powerpc/darn-2.c: Likewise.
      	* gcc.target/powerpc/dform-3.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-0.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-1.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-10.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-11.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-12.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-13.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-14.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-15.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-16.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-17.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-18.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-19.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-2.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-20.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-21.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-22.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-23.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-24.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-25.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-26.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-27.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-28.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-29.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-3.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-30.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-31.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-32.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-33.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-34.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-35.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-36.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-37.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-38.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-39.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-4.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-40.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-41.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-42.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-43.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-44.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-45.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-46.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-47.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-48.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-49.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-5.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-50.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-51.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-52.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-53.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-54.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-55.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-56.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-57.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-58.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-59.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-6.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-60.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-61.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-62.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-63.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-64.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-65.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-66.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-67.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-68.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-69.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-7.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-70.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-71.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-72.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-73.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-74.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-75.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-76.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-77.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-78.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-79.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-8.c: Likewise.
      	* gcc.target/powerpc/dfp/dtstsfi-9.c: Likewise.
      	* gcc.target/powerpc/direct-move-vector.c: Likewise.
      	* gcc.target/powerpc/float128-type-2.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-int.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-longlong.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-char.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-short.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-char.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-float.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-int.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-longlong.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-short.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-char-p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-float-p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-int-p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-short-p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mult-int128-p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-int.p9.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-longlong.p9.c: Likewise.
      	* gcc.target/powerpc/p9-dimode1.c: Likewise.
      	* gcc.target/powerpc/p9-dimode2.c: Likewise.
      	* gcc.target/powerpc/p9-extract-1.c: Likewise.
      	* gcc.target/powerpc/p9-extract-2.c: Likewise.
      	* gcc.target/powerpc/p9-extract-3.c: Likewise.
      	* gcc.target/powerpc/p9-extract-4.c: Likewise.
      	* gcc.target/powerpc/p9-fpcvt-1.c: Likewise.
      	* gcc.target/powerpc/p9-fpcvt-2.c: Likewise.
      	* gcc.target/powerpc/p9-fpcvt-3.c: Likewise.
      	* gcc.target/powerpc/p9-lxvx-stxvx-1.c: Likewise.
      	* gcc.target/powerpc/p9-lxvx-stxvx-2.c: Likewise.
      	* gcc.target/powerpc/p9-lxvx-stxvx-3.c: Likewise.
      	* gcc.target/powerpc/p9-minmax-1.c: Likewise.
      	* gcc.target/powerpc/p9-minmax-2.c: Likewise.
      	* gcc.target/powerpc/p9-minmax-3.c: Likewise.
      	* gcc.target/powerpc/p9-novsx.c: Likewise.
      	* gcc.target/powerpc/p9-permute.c: Likewise.
      	* gcc.target/powerpc/p9-sign_extend-runnable.c: Likewise.
      	* gcc.target/powerpc/p9-splat-1.c: Likewise.
      	* gcc.target/powerpc/p9-splat-2.c: Likewise.
      	* gcc.target/powerpc/p9-splat-3.c: Likewise.
      	* gcc.target/powerpc/p9-splat-4.c: Likewise.
      	* gcc.target/powerpc/p9-splat-5.c: Likewise.
      	* gcc.target/powerpc/p9-vbpermd.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-1.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-2.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-3.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-4.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-5.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-6.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-7.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-epil-8.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-1.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-2.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-3.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-4.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-5.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-6.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-7.c: Likewise.
      	* gcc.target/powerpc/p9-vec-length-full-8.c: Likewise.
      	* gcc.target/powerpc/p9-vneg.c: Likewise.
      	* gcc.target/powerpc/p9-vparity.c: Likewise.
      	* gcc.target/powerpc/p9-vpermr.c: Likewise.
      	* gcc.target/powerpc/p9-xxbr-1.c: Likewise.
      	* gcc.target/powerpc/p9-xxbr-2.c: Likewise.
      	* gcc.target/powerpc/p9-xxbr-3.c: Likewise.
      	* gcc.target/powerpc/ppc-fortran/pr80108-1.f90: Likewise.
      	* gcc.target/powerpc/ppc-round3.c: Likewise.
      	* gcc.target/powerpc/pr103124.c: Likewise.
      	* gcc.target/powerpc/pr104015-1.c: Likewise.
      	* gcc.target/powerpc/pr106769-p9.c: Likewise.
      	* gcc.target/powerpc/pr107412.c: Likewise.
      	* gcc.target/powerpc/pr110429.c: Likewise.
      	* gcc.target/powerpc/pr66144-1.c: Likewise.
      	* gcc.target/powerpc/pr71186.c: Likewise.
      	* gcc.target/powerpc/pr71309.c: Likewise.
      	* gcc.target/powerpc/pr71670.c: Likewise.
      	* gcc.target/powerpc/pr71698.c: Likewise.
      	* gcc.target/powerpc/pr71720.c: Likewise.
      	* gcc.target/powerpc/pr72853.c: Likewise.
      	* gcc.target/powerpc/pr78056-1.c: Likewise.
      	* gcc.target/powerpc/pr78658.c: Likewise.
      	* gcc.target/powerpc/pr78953.c: Likewise.
      	* gcc.target/powerpc/pr79004.c: Likewise.
      	* gcc.target/powerpc/pr79038-1.c: Likewise.
      	* gcc.target/powerpc/pr79179.c: Likewise.
      	* gcc.target/powerpc/pr79251.p9.c: Likewise.
      	* gcc.target/powerpc/pr79799-1.c: Likewise.
      	* gcc.target/powerpc/pr79799-2.c: Likewise.
      	* gcc.target/powerpc/pr79799-3.c: Likewise.
      	* gcc.target/powerpc/pr79799-5.c: Likewise.
      	* gcc.target/powerpc/pr80695-p9.c: Likewise.
      	* gcc.target/powerpc/pr81348.c: Likewise.
      	* gcc.target/powerpc/pr81622.c: Likewise.
      	* gcc.target/powerpc/pr84154-3.c: Likewise.
      	* gcc.target/powerpc/pr90763.c: Likewise.
      	* gcc.target/powerpc/pr96933-1.c: Likewise.
      	* gcc.target/powerpc/sad-vectorize-1.c: Likewise.
      	* gcc.target/powerpc/sad-vectorize-2.c: Likewise.
      	* gcc.target/powerpc/signbit-2.c: Likewise.
      	* gcc.target/powerpc/vadsdu-0.c: Likewise.
      	* gcc.target/powerpc/vadsdu-1.c: Likewise.
      	* gcc.target/powerpc/vadsdu-2.c: Likewise.
      	* gcc.target/powerpc/vadsdu-3.c: Likewise.
      	* gcc.target/powerpc/vadsdu-4.c: Likewise.
      	* gcc.target/powerpc/vadsdu-5.c: Likewise.
      	* gcc.target/powerpc/vadsdub-1.c: Likewise.
      	* gcc.target/powerpc/vadsdub-2.c: Likewise.
      	* gcc.target/powerpc/vadsduh-1.c: Likewise.
      	* gcc.target/powerpc/vadsduh-2.c: Likewise.
      	* gcc.target/powerpc/vadsduw-1.c: Likewise.
      	* gcc.target/powerpc/vadsduw-2.c: Likewise.
      	* gcc.target/powerpc/vec-extract-4.c: Likewise.
      	* gcc.target/powerpc/vec-init-3.c: Likewise.
      	* gcc.target/powerpc/vec-minmax-1.c: Likewise.
      	* gcc.target/powerpc/vec-minmax-2.c: Likewise.
      	* gcc.target/powerpc/vec-set-char.c: Likewise.
      	* gcc.target/powerpc/vec-set-int.c: Likewise.
      	* gcc.target/powerpc/vec-set-short.c: Likewise.
      	* gcc.target/powerpc/vec_reve_2.c: Likewise.
      	* gcc.target/powerpc/vector_float.c: Likewise.
      	* gcc.target/powerpc/vslv-0.c: Likewise.
      	* gcc.target/powerpc/vslv-1.c: Likewise.
      	* gcc.target/powerpc/vsrv-0.c: Likewise.
      	* gcc.target/powerpc/vsrv-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-10.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-11.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-12.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-13.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-14.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-8.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-ne-9.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-10.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-11.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-12.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-13.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-14.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-8.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eq-9.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-8.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpne-9.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cntlz-lsbb-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cntlz-lsbb-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cntlz-lsbb-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cntlz-lsbb-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cnttz-lsbb-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cnttz-lsbb-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cnttz-lsbb-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-cnttz-lsbb-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-10.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-11.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-12.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-8.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xl-len-9.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xlx-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xrx-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-0.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-1.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-10.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-11.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-13.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-2.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-3.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-4.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-5.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-6.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-7.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-8.c: Likewise.
      	* gcc.target/powerpc/vsu/vec-xst-len-9.c: Likewise.
      	* gcc.target/powerpc/vsx-builtin-msum.c: Likewise.
      	* gcc.target/powerpc/vsx-himode.c: Likewise.
      	* gcc.target/powerpc/vsx-himode2.c: Likewise.
      	* gcc.target/powerpc/vsx-himode3.c: Likewise.
      	* gcc.target/powerpc/vsx-qimode.c: Likewise.
      	* gcc.target/powerpc/vsx-qimode2.c: Likewise.
      	* gcc.target/powerpc/vsx-qimode3.c: Likewise.
      	* g++.target/powerpc/pr65240-1.C: Replace powerpc_p8vector_ok with
      	powerpc_vsx_ok and append -mvsx to dg-options.
      	* g++.target/powerpc/pr65240-2.C: Likewise.
      	* g++.target/powerpc/pr65240-3.C: Likewise.
      	* g++.target/powerpc/pr65242.C: Likewise.
      	* g++.target/powerpc/pr67211.C: Likewise.
      	* g++.target/powerpc/pr71294.C: Likewise.
      	* g++.target/powerpc/pr84279.C: Likewise.
      	* g++.target/powerpc/pr93974.C: Likewise.
      	* gcc.target/powerpc/atomic-p8.c: Likewise.
      	* gcc.target/powerpc/atomic_load_store-p8.c: Likewise.
      	* gcc.target/powerpc/bcd-2.c: Likewise.
      	* gcc.target/powerpc/bcd-3.c: Likewise.
      	* gcc.target/powerpc/bool2-p8.c: Likewise.
      	* gcc.target/powerpc/bool3-p8.c: Likewise.
      	* gcc.target/powerpc/builtins-1.c: Likewise.
      	* gcc.target/powerpc/builtins-3-p8.c: Likewise.
      	* gcc.target/powerpc/builtins-5.c: Likewise.
      	* gcc.target/powerpc/builtins-9.c: Likewise.
      	* gcc.target/powerpc/crypto-builtin-1.c: Likewise.
      	* gcc.target/powerpc/crypto-builtin-2.c: Likewise.
      	* gcc.target/powerpc/direct-move-double1.c: Likewise.
      	* gcc.target/powerpc/direct-move-float1.c: Likewise.
      	* gcc.target/powerpc/direct-move-long1.c: Likewise.
      	* gcc.target/powerpc/direct-move-vint1.c: Likewise.
      	* gcc.target/powerpc/float128-type-1.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-char.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-double.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-float.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-char-p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-float-p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-int-p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-insert-short-p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-char.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-floatdouble.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-short.c: Likewise.
      	* gcc.target/powerpc/fold-vec-select-double.c: Likewise.
      	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c: Likewise.
      	* gcc.target/powerpc/fusion.c: Likewise.
      	* gcc.target/powerpc/fusion2.c: Likewise.
      	* gcc.target/powerpc/mul-vectorize-1.c: Likewise.
      	* gcc.target/powerpc/p8-vec-xl-xst-v2.c: Likewise.
      	* gcc.target/powerpc/p8-vec-xl-xst.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-1.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-2.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-3.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-4.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-5.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-6.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-7.c: Likewise.
      	* gcc.target/powerpc/p8vector-fp.c: Likewise.
      	* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
      	* gcc.target/powerpc/p8vector-ldst.c: Likewise.
      	* gcc.target/powerpc/p8vector-vbpermq.c: Likewise.
      	* gcc.target/powerpc/p8vector-vectorize-1.c: Likewise.
      	* gcc.target/powerpc/p8vector-vectorize-2.c: Likewise.
      	* gcc.target/powerpc/p8vector-vectorize-3.c: Likewise.
      	* gcc.target/powerpc/p8vector-vectorize-4.c: Likewise.
      	* gcc.target/powerpc/p8vector-vectorize-5.c: Likewise.
      	* gcc.target/powerpc/ppc-round2.c: Likewise.
      	* gcc.target/powerpc/pr100866-1.c: Likewise.
      	* gcc.target/powerpc/pr100866-2.c: Likewise.
      	* gcc.target/powerpc/pr104239-1.c: Likewise.
      	* gcc.target/powerpc/pr104239-2.c: Likewise.
      	* gcc.target/powerpc/pr104239-3.c: Likewise.
      	* gcc.target/powerpc/pr106769-p8.c: Likewise.
      	* gcc.target/powerpc/pr108396.c: Likewise.
      	* gcc.target/powerpc/pr111449-1.c: Likewise.
      	* gcc.target/powerpc/pr57744.c: Likewise.
      	* gcc.target/powerpc/pr58673-1.c: Likewise.
      	* gcc.target/powerpc/pr58673-2.c: Likewise.
      	* gcc.target/powerpc/pr60137.c: Likewise.
      	* gcc.target/powerpc/pr60203.c: Likewise.
      	* gcc.target/powerpc/pr66144-2.c: Likewise.
      	* gcc.target/powerpc/pr66144-3.c: Likewise.
      	* gcc.target/powerpc/pr68163.c: Likewise.
      	* gcc.target/powerpc/pr69548.c: Likewise.
      	* gcc.target/powerpc/pr70669.c: Likewise.
      	* gcc.target/powerpc/pr71977-1.c: Likewise.
      	* gcc.target/powerpc/pr71977-2.c: Likewise.
      	* gcc.target/powerpc/pr72717.c: Likewise.
      	* gcc.target/powerpc/pr78056-3.c: Likewise.
      	* gcc.target/powerpc/pr78056-4.c: Likewise.
      	* gcc.target/powerpc/pr78102.c: Likewise.
      	* gcc.target/powerpc/pr78543.c: Likewise.
      	* gcc.target/powerpc/pr78604.c: Likewise.
      	* gcc.target/powerpc/pr79251.p8.c: Likewise.
      	* gcc.target/powerpc/pr79354.c: Likewise.
      	* gcc.target/powerpc/pr79544.c: Likewise.
      	* gcc.target/powerpc/pr79907.c: Likewise.
      	* gcc.target/powerpc/pr79951.c: Likewise.
      	* gcc.target/powerpc/pr80315-1.c: Likewise.
      	* gcc.target/powerpc/pr80315-2.c: Likewise.
      	* gcc.target/powerpc/pr80315-3.c: Likewise.
      	* gcc.target/powerpc/pr80315-4.c: Likewise.
      	* gcc.target/powerpc/pr80510-2.c: Likewise.
      	* gcc.target/powerpc/pr80695-p8.c: Likewise.
      	* gcc.target/powerpc/pr80718.c: Likewise.
      	* gcc.target/powerpc/pr84154-2.c: Likewise.
      	* gcc.target/powerpc/pr88558-p8.c: Likewise.
      	* gcc.target/powerpc/pr88845.c: Likewise.
      	* gcc.target/powerpc/pr91903.c: Likewise.
      	* gcc.target/powerpc/pr92923-2.c: Likewise.
      	* gcc.target/powerpc/pr96933-2.c: Likewise.
      	* gcc.target/powerpc/pr97019.c: Likewise.
      	* gcc.target/powerpc/pragma_power8.c: Likewise.
      	* gcc.target/powerpc/signbit-1.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-1.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-12.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-14.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-15.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-16.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-17.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-18.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-19.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-2.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-22.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-23.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-24.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-25.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-26.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-27.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-3.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-30.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-33.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-36.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-39.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-4.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-42.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-45.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-46.c: Likewise.
      	* gcc.target/powerpc/swaps-p8-5.c: Likewise.
      	* gcc.target/powerpc/unpack-vectorize-3.c: Likewise.
      	* gcc.target/powerpc/upper-regs-sf.c: Likewise.
      	* gcc.target/powerpc/vec-cmp.c: Likewise.
      	* gcc.target/powerpc/vec-extract-1.c: Likewise.
      	* gcc.target/powerpc/vec-extract-3.c: Likewise.
      	* gcc.target/powerpc/vec-extract-5.c: Likewise.
      	* gcc.target/powerpc/vec-extract-6.c: Likewise.
      	* gcc.target/powerpc/vec-extract-7.c: Likewise.
      	* gcc.target/powerpc/vec-extract-8.c: Likewise.
      	* gcc.target/powerpc/vec-extract-9.c: Likewise.
      	* gcc.target/powerpc/vec-init-10.c: Likewise.
      	* gcc.target/powerpc/vec-init-6.c: Likewise.
      	* gcc.target/powerpc/vec-init-7.c: Likewise.
      	* gcc.target/powerpc/vsx-extract-3.c: Likewise.
      	* gcc.target/powerpc/vsx-extract-4.c: Likewise.
      	* gcc.target/powerpc/vsx-extract-5.c: Likewise.
      	* gcc.target/powerpc/vsx-simode.c: Likewise.
      	* gcc.target/powerpc/vsx-simode2.c: Likewise.
      	* gcc.target/powerpc/vsx-simode3.c: Likewise.
      	* gcc.target/powerpc/builtins-4-int128-runnable.c: Replace
      	powerpc_p8vector_ok with powerpc_vsx_ok, replace -mpower8-vector
      	with -mvsx, and add dg-additional-options -mdejagnu-cpu=power8
      	if !has_arch_pwr8.
      	* gcc.target/powerpc/builtins-mergew-mergow.c: Likewise.
      	* gcc.target/powerpc/direct-move-float3.c: Likewise.
      	* gcc.target/powerpc/divkc3-2.c: Likewise.
      	* gcc.target/powerpc/divkc3-3.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-add-4.c: Likewise.
      	* gcc.target/powerpc/fold-vec-add-7.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-int.h: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-short.h: Likewise.
      	* gcc.target/powerpc/fold-vec-cntlz-char.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cntlz-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cntlz-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cntlz-short.c: Likewise.
      	* gcc.target/powerpc/fold-vec-ld-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-char.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-float.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-eqv-short.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-ors-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-other-char.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-other-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-other-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-logical-other-short.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mergehl-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-minmax-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mult-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mult-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-longlong.h: Likewise.
      	* gcc.target/powerpc/fold-vec-pack-double.c: Likewise.
      	* gcc.target/powerpc/fold-vec-pack-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c: Likewise.
      	* gcc.target/powerpc/fold-vec-shift-left-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-shift-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-st-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-sub-int128.c: Likewise.
      	* gcc.target/powerpc/fold-vec-sub-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-unpack-float.c: Likewise.
      	* gcc.target/powerpc/fold-vec-unpack-int.c: Likewise.
      	* gcc.target/powerpc/mmx-packs.c: Likewise.
      	* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-packuswb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddsb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddsw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddusb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddusw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-paddw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmulhw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pmullw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-pslld-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psllw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrad-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psraw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrld-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psrlw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubb-2.c: Likewise.
      	* gcc.target/powerpc/mmx-psubd-2.c: Likewise.
      	* gcc.target/powerpc/mmx-psubsb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubsw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubusb-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubusw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-psubw-2.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpckldq-1.c: Likewise.
      	* gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise.
      	* gcc.target/powerpc/mulkc3-2.c: Likewise.
      	* gcc.target/powerpc/mulkc3-3.c: Likewise.
      	* gcc.target/powerpc/p8vector-builtin-8.c: Likewise.
      	* gcc.target/powerpc/pr37191.c: Likewise.
      	* gcc.target/powerpc/pr83862.c: Likewise.
      	* gcc.target/powerpc/pr84154-1.c: Likewise.
      	* gcc.target/powerpc/pr84220-sld2.c: Likewise.
      	* gcc.target/powerpc/pr85456.c: Likewise.
      	* gcc.target/powerpc/pr86731-longlong.c: Likewise.
      	* gcc.target/powerpc/sse-addps-1.c: Likewise.
      	* gcc.target/powerpc/sse-addss-1.c: Likewise.
      	* gcc.target/powerpc/sse-andnps-1.c: Likewise.
      	* gcc.target/powerpc/sse-andps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cmpss-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise.
      	* gcc.target/powerpc/sse-cvtss2si-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvtss2si-2.c: Likewise.
      	* gcc.target/powerpc/sse-cvttss2si-1.c: Likewise.
      	* gcc.target/powerpc/sse-cvttss2si-2.c: Likewise.
      	* gcc.target/powerpc/sse-divps-1.c: Likewise.
      	* gcc.target/powerpc/sse-divss-1.c: Likewise.
      	* gcc.target/powerpc/sse-maxps-1.c: Likewise.
      	* gcc.target/powerpc/sse-maxps-2.c: Likewise.
      	* gcc.target/powerpc/sse-maxss-1.c: Likewise.
      	* gcc.target/powerpc/sse-minps-1.c: Likewise.
      	* gcc.target/powerpc/sse-minps-2.c: Likewise.
      	* gcc.target/powerpc/sse-minss-1.c: Likewise.
      	* gcc.target/powerpc/sse-movaps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movaps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movhlps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movhps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movlhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movlps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movlps-2.c: Likewise.
      	* gcc.target/powerpc/sse-movmskb-1.c: Likewise.
      	* gcc.target/powerpc/sse-movmskps-1.c: Likewise.
      	* gcc.target/powerpc/sse-movss-1.c: Likewise.
      	* gcc.target/powerpc/sse-movss-2.c: Likewise.
      	* gcc.target/powerpc/sse-movss-3.c: Likewise.
      	* gcc.target/powerpc/sse-mulps-1.c: Likewise.
      	* gcc.target/powerpc/sse-mulss-1.c: Likewise.
      	* gcc.target/powerpc/sse-orps-1.c: Likewise.
      	* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmaxsw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmaxub-1.c: Likewise.
      	* gcc.target/powerpc/sse-pminsw-1.c: Likewise.
      	* gcc.target/powerpc/sse-pminub-1.c: Likewise.
      	* gcc.target/powerpc/sse-pmulhuw-1.c: Likewise.
      	* gcc.target/powerpc/sse-psadbw-1.c: Likewise.
      	* gcc.target/powerpc/sse-rcpps-1.c: Likewise.
      	* gcc.target/powerpc/sse-rsqrtps-1.c: Likewise.
      	* gcc.target/powerpc/sse-shufps-1.c: Likewise.
      	* gcc.target/powerpc/sse-sqrtps-1.c: Likewise.
      	* gcc.target/powerpc/sse-subps-1.c: Likewise.
      	* gcc.target/powerpc/sse-subss-1.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-1.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-2.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-3.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-4.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-5.c: Likewise.
      	* gcc.target/powerpc/sse-ucomiss-6.c: Likewise.
      	* gcc.target/powerpc/sse-unpckhps-1.c: Likewise.
      	* gcc.target/powerpc/sse-unpcklps-1.c: Likewise.
      	* gcc.target/powerpc/sse-xorps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-addpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-andnpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-andpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cmppd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cmpsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-4.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-5.c: Likewise.
      	* gcc.target/powerpc/sse2-comisd-6.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
      	* gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise.
      	* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-maxpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-minpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-mmx.c: Likewise.
      	* gcc.target/powerpc/sse2-movhpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movhpd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movlpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movlpd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movq-3.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-orpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddusw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-paddw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pand-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pandn-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pavgb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pavgw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pextrw.c: Likewise.
      	* gcc.target/powerpc/sse2-pinsrw.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmaxub-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pminsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pminub-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmullw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pmuludq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-por-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pslld-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
      	* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psllw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psllw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrad-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrad-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psraw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psraw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlq-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psrlw-2.c: Likewise.
      	* gcc.target/powerpc/sse2-psubb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubsb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubsw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubusw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-psubw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpckldq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise.
      	* gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-pxor-1.c: Likewise.
      	* gcc.target/powerpc/sse2-shufpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-subpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-subsd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-2.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-3.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-4.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-5.c: Likewise.
      	* gcc.target/powerpc/sse2-ucomisd-6.c: Likewise.
      	* gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise.
      	* gcc.target/powerpc/sse2-xorpd-1.c: Likewise.
      	* gcc.target/powerpc/sse3-addsubpd.c: Likewise.
      	* gcc.target/powerpc/sse3-addsubps.c: Likewise.
      	* gcc.target/powerpc/sse3-haddpd.c: Likewise.
      	* gcc.target/powerpc/sse3-haddps.c: Likewise.
      	* gcc.target/powerpc/sse3-hsubpd.c: Likewise.
      	* gcc.target/powerpc/sse3-hsubps.c: Likewise.
      	* gcc.target/powerpc/sse3-lddqu.c: Likewise.
      	* gcc.target/powerpc/sse3-movddup.c: Likewise.
      	* gcc.target/powerpc/sse3-movshdup.c: Likewise.
      	* gcc.target/powerpc/sse3-movsldup.c: Likewise.
      	* gcc.target/powerpc/sse4_1-blendpd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-blendps-2.c: Likewise.
      	* gcc.target/powerpc/sse4_1-blendps.c: Likewise.
      	* gcc.target/powerpc/sse4_1-blendvpd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-blendvps.c: Likewise.
      	* gcc.target/powerpc/sse4_1-ceilpd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-ceilps.c: Likewise.
      	* gcc.target/powerpc/sse4_1-ceilsd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-ceilss.c: Likewise.
      	* gcc.target/powerpc/sse4_1-floorpd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-floorps.c: Likewise.
      	* gcc.target/powerpc/sse4_1-floorsd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-floorss.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pblendvb.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pblendw-2.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pblendw.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pcmpeqq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pinsrb.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pinsrd.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pinsrq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pmovsxbq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pmovsxdq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pmovsxwq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-pmuldq.c: Likewise.
      	* gcc.target/powerpc/sse4_1-ptest-1.c: Likewise.
      	* gcc.target/powerpc/sse4_1-roundpd-2.c: Likewise.
      	* gcc.target/powerpc/sse4_1-roundpd-3.c: Likewise.
      	* gcc.target/powerpc/sse4_2-pcmpgtq.c: Likewise.
      	* gcc.target/powerpc/ssse3-pabsb.c: Likewise.
      	* gcc.target/powerpc/ssse3-pabsd.c: Likewise.
      	* gcc.target/powerpc/ssse3-pabsw.c: Likewise.
      	* gcc.target/powerpc/ssse3-palignr.c: Likewise.
      	* gcc.target/powerpc/ssse3-phaddd.c: Likewise.
      	* gcc.target/powerpc/ssse3-phaddsw.c: Likewise.
      	* gcc.target/powerpc/ssse3-phaddw.c: Likewise.
      	* gcc.target/powerpc/ssse3-phsubd.c: Likewise.
      	* gcc.target/powerpc/ssse3-phsubsw.c: Likewise.
      	* gcc.target/powerpc/ssse3-phsubw.c: Likewise.
      	* gcc.target/powerpc/ssse3-pmaddubsw.c: Likewise.
      	* gcc.target/powerpc/ssse3-pmulhrsw.c: Likewise.
      	* gcc.target/powerpc/ssse3-pshufb.c: Likewise.
      	* gcc.target/powerpc/ssse3-psignb.c: Likewise.
      	* gcc.target/powerpc/ssse3-psignd.c: Likewise.
      	* gcc.target/powerpc/ssse3-psignw.c: Likewise.
      	* gcc.target/powerpc/vec-cmp-sel.c: Likewise.
      	* gcc.target/powerpc/vec-sld-modulo.c: Likewise.
      	* gcc.target/powerpc/vec-srad-modulo.c: Likewise.
      	* gcc.target/powerpc/vec-srd-modulo.c: Likewise.
      	* gcc.target/powerpc/amo1.c: Replace powerpc_p9vector_ok with
      	powerpc_vsx_ok, replace -mpower9-vector with -mvsx, and add
      	dg-additional-options -mdejagnu-cpu=power9 if !has_arch_pwr9.
      	* gcc.target/powerpc/amo2.c: Likewise.
      	* gcc.target/powerpc/dform-1.c: Likewise.
      	* gcc.target/powerpc/dform-2.c: Likewise.
      	* gcc.target/powerpc/float128-5.c: Likewise.
      	* gcc.target/powerpc/float128-complex-2.c: Likewise.
      	* gcc.target/powerpc/float128-fma1.c: Likewise.
      	* gcc.target/powerpc/float128-hw.c: Likewise.
      	* gcc.target/powerpc/float128-hw10.c: Likewise.
      	* gcc.target/powerpc/float128-hw11.c: Likewise.
      	* gcc.target/powerpc/float128-hw2.c: Likewise.
      	* gcc.target/powerpc/float128-hw3.c: Likewise.
      	* gcc.target/powerpc/float128-hw4.c: Likewise.
      	* gcc.target/powerpc/float128-hw5.c: Likewise.
      	* gcc.target/powerpc/float128-hw6.c: Likewise.
      	* gcc.target/powerpc/float128-hw7.c: Likewise.
      	* gcc.target/powerpc/float128-hw8.c: Likewise.
      	* gcc.target/powerpc/float128-hw9.c: Likewise.
      	* gcc.target/powerpc/float128-minmax.c: Likewise.
      	* gcc.target/powerpc/float128-odd.c: Likewise.
      	* gcc.target/powerpc/float128-sqrt1.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-int.p9.c: Likewise.
      	* gcc.target/powerpc/gnuattr2.c: Likewise.
      	* gcc.target/powerpc/pr71656-1.c: Likewise.
      	* gcc.target/powerpc/pr71656-2.c: Likewise.
      	* gcc.target/powerpc/pr81959.c: Likewise.
      	* gcc.target/powerpc/pr82748-1.c: Likewise.
      	* gcc.target/powerpc/pr82748-2.c: Likewise.
      	* gcc.target/powerpc/pr111449-2.c: Replace powerpc_p8vector_ok
      	with powerpc_vsx_ok.
      	* gcc.target/powerpc/pr98914.c: Likewise.
      	* gcc.target/powerpc/versioned-copy-loop.c: Replace
      	powerpc_p8vector_ok with powerpc_vsx_ok and append -mvsx to
      	dg-options.
      	* gcc.target/powerpc/clone2.c: Replace powerpc_p9vector_ok with
      	powerpc_vsx_ok.
      	* gcc.target/powerpc/p9-options-1.c: Replace powerpc_p9vector_ok
      	with powerpc_vsx_ok, replace -mno-power9-vector with -mno-vsx.
      	* gcc.target/powerpc/pr84226.c: Replace powerpc_p9vector_ok with
      	powerpc_vsx_ok and append -mvsx to dg-options.
      	* g++.dg/pr69667.C: Replace powerpc_p8vector_ok with
      	powerpc_vsx_ok and append -mvsx to dg-options.
      	* gcc.dg/vect/costmodel/ppc/costmodel-slp-perm.c: Replace
      	powerpc_p9vector_ok with powerpc_vsx_ok and replace
      	-mpower9-vector with -mvsx.
      	* gcc.dg/vect/pr109011-1.c: Replace powerpc_p8vector_ok with
      	powerpc_vsx_ok, and replace -mpower8-vector with
      	-mdejagnu-cpu=power8 -mvsx or -mvsx under different conditions.
      	* gcc.dg/vect/pr109011-2.c: Replace powerpc_p9vector_ok
      	with powerpc_vsx_ok, and replace -mpower9-vector with
      	-mdejagnu-cpu=power9 -mvsx or -mvsx under different conditions.
      	* gcc.dg/vect/pr109011-4.c: Likewise.
      	* gcc.dg/vect/pr109011-3.c: Replace powerpc_p8vector_ok with
      	powerpc_vsx_ok, and replace -mpower8-vector -mno-power9-vector
      	with -mdejagnu-cpu=power8 -mvsx.
      	* gcc.dg/vect/pr109011-5.c: Likewise.
      	* gcc.target/powerpc/altivec-35.c: Remove -mno-power8-vector.
      	* gcc.target/powerpc/vsx-vector-7.c: Replace -mno-power8-vector
      	with -mdejagnu-cpu=power7.
      	* gcc.dg/vect/O3-pr70130.c: Replace -mcpu=power7 with options
      	-mdejagnu-cpu=power7 -mvsx and remove option -mno-power9-vector
      	-mno-power8-vector.
      	* gfortran.dg/vect/pr45714-b.f: Likewise.
      	* gcc.dg/vect/pr48765.c: Remove dg-skip-if and replace -mcpu=power7
      	with option -mdejagnu-cpu=power6.
      	* gcc.target/powerpc/pr78056-2.c: Likewise.
      	* gcc.target/powerpc/altivec-2-runnable.c: Replace
      	powerpc_p8vector_ok with powerpc_vsx_ok, remove -mpower8-vector
      	and add dg-additional-options -mdejagnu-cpu=power8 if !has_arch_pwr8.
      	* gcc.target/powerpc/altivec-37.c: Likewise.
      	* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c: Replace
      	powerpc_p8vector_ok with powerpc_vsx_ok and replace -mpower8-vector
      	with -mvsx.
      	* gcc.target/powerpc/fold-vec-abs-longlong.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-char.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-cmp-short.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mergeeo-int.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mergeeo-longlong.c: Likewise.
      	* gcc.target/powerpc/fold-vec-mult-int128-p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-neg-longlong.p8.c: Likewise.
      	* gcc.target/powerpc/pr104124.c: Likewise.
      	* gcc.target/powerpc/vec-cmpne-long.c: Likewise.
      	* gcc.target/powerpc/pr86731-fwrapv-longlong.c: Replace
      	powerpc_p8vector_ok with powerpc_vsx_ok, replace -mpower8-vector with
      	-mvsx and add dg-additional-options -mdejagnu-cpu=power8 if
      	!has_arch_pwr8.
      	* gcc.target/powerpc/pr80098-1.c: Replace powerpc_p9vector_ok with
      	powerpc_vsx_ok and replace -mno-power9-vector with -mno-vsx.
      	* gcc.target/powerpc/pr80098-2.c: Replace powerpc_p8vector_ok with
      	powerpc_vsx_ok and replace -mno-power8-vector with -mno-vsx.
      	* gcc.target/powerpc/pragma_misc9.c: Replace powerpc_p9vector_ok
      	with powerpc_vsx_ok.
      438ef143
    • GCC Administrator's avatar
      Daily bump. · 98004ca0
      GCC Administrator authored
      98004ca0
  22. Feb 21, 2024
  23. Feb 20, 2024
  24. Feb 17, 2024
  25. Feb 16, 2024
    • Matteo Italia's avatar
      libgcc: fix Win32 CV abnormal spurious wakeups in timed wait [PR113850] · 05ad8fb5
      Matteo Italia authored
      Fix a typo in __gthr_win32_abs_to_rel_time that caused it to return a
      relative time in seconds instead of milliseconds. As a consequence,
      __gthr_win32_cond_timedwait called SleepConditionVariableCS with a
      1000x shorter timeout; this caused ~1000x more spurious wakeups in
      CV timed waits such as std::condition_variable::wait_for or wait_until,
      resulting generally in much higher CPU usage.
      
      This can be demonstrated by this sample program:
      
      ```
      
      int main() {
          std::condition_variable cv;
          std::mutex mx;
          bool pass = false;
      
          auto thread_fn = [&](bool timed) {
              int wakeups = 0;
              using sc = std::chrono::system_clock;
              auto before = sc::now();
              std::unique_lock<std::mutex> ml(mx);
              if (timed) {
                  cv.wait_for(ml, std::chrono::seconds(2), [&]{
                      ++wakeups;
                      return pass;
                  });
              } else {
                  cv.wait(ml, [&]{
                      ++wakeups;
                      return pass;
                  });
              }
              printf("pass: %d; wakeups: %d; elapsed: %d ms\n", pass, wakeups,
                      int((sc::now() - before) / std::chrono::milliseconds(1)));
              pass = false;
          };
      
          {
              // timed wait, let expire
              std::thread t(thread_fn, true);
              t.join();
          }
      
          {
              // timed wait, wake up explicitly after 1 second
              std::thread t(thread_fn, true);
              std::this_thread::sleep_for(std::chrono::seconds(1));
              {
                  std::unique_lock<std::mutex> ml(mx);
                  pass = true;
              }
              cv.notify_all();
              t.join();
          }
      
          {
              // non-timed wait, wake up explicitly after 1 second
              std::thread t(thread_fn, false);
              std::this_thread::sleep_for(std::chrono::seconds(1));
              {
                  std::unique_lock<std::mutex> ml(mx);
                  pass = true;
              }
              cv.notify_all();
              t.join();
          }
          return 0;
      }
      ```
      
      On builds based on non-affected threading models (e.g. POSIX on Linux,
      or winpthreads or MCF on Win32) the output is something like
      ```
      pass: 0; wakeups: 2; elapsed: 2000 ms
      pass: 1; wakeups: 2; elapsed: 991 ms
      pass: 1; wakeups: 2; elapsed: 996 ms
      ```
      
      while with the Win32 threading model we get
      ```
      pass: 0; wakeups: 1418; elapsed: 2000 ms
      pass: 1; wakeups: 479; elapsed: 988 ms
      pass: 1; wakeups: 2; elapsed: 992 ms
      ```
      (notice the huge number of wakeups in the timed wait cases only).
      
      This commit fixes the conversion, adjusting the final division by
      NSEC100_PER_SEC to use NSEC100_PER_MSEC instead (already defined in the
      file and not used in any other place, so probably just a typo).
      
      libgcc/ChangeLog:
      
      	PR libgcc/113850
      	* config/i386/gthr-win32-cond.c (__gthr_win32_abs_to_rel_time):
      	fix absolute timespec to relative milliseconds count
      	conversion (it incorrectly returned seconds instead of
      	milliseconds); this avoids spurious wakeups in
      	__gthr_win32_cond_timedwait
      05ad8fb5
  26. Feb 15, 2024
  27. Feb 14, 2024
    • H.J. Lu's avatar
      x86: Support x32 and IBT in heap trampoline · 67ce5c97
      H.J. Lu authored
      Add x32 and IBT support to x86 heap trampoline implementation with a
      testcase.
      
      2024-02-13  Jakub Jelinek  <jakub@redhat.com>
      	    H.J. Lu  <hjl.tools@gmail.com>
      
      libgcc/
      
      	PR target/113855
      	* config/i386/heap-trampoline.c (trampoline_insns): Add IBT
      	support and pad to the multiple of 4 bytes.  Use movabsq
      	instead of movabs in comments.  Add -mx32 variant.
      
      gcc/testsuite/
      
      	PR target/113855
      	* gcc.dg/heap-trampoline-1.c: New test.
      	* lib/target-supports.exp (check_effective_target_heap_trampoline):
      	New.
      67ce5c97
    • GCC Administrator's avatar
      Daily bump. · df6c57ce
      GCC Administrator authored
      df6c57ce
  28. Feb 13, 2024
    • Jakub Jelinek's avatar
      libgcc: Fix UB in FP_FROM_BITINT · 2ca373b7
      Jakub Jelinek authored
      As I wrote earlier, I was seeing
      FAIL: gcc.dg/torture/bitint-24.c   -O0  execution test
      FAIL: gcc.dg/torture/bitint-24.c   -O2  execution test
      with the ia32 _BitInt enablement patch on i686-linux.  I thought
      floatbitintxf.c was miscompiled with -O2 -march=i686 -mtune=generic, but it
      turned out to be UB in it.
      
      If a signed _BitInt to be converted to binary floating point has
      (after sign extension from possible partial limb to full limb) one or
      more most significant limbs equal to all ones and then in the limb below
      (the most significant non-~(UBILtype)0 limb) has the most significant limb
      cleared, like for 32-bit limbs
      0x81582c05U, 0x0a8b01e4U, 0xc1b8b18fU, 0x2aac2a08U, -1U, -1U
      then bitint_reduce_prec can't reduce it to that 0x2aac2a08U limb, so
      msb is all ones and precision is negative (so it reduced precision from
      161 to 192 bits down to 160 bits, in theory could go as low as 129 bits
      but that wouldn't change anything on the following behavior).
      But still iprec is negative, -160 here.
      For that case (i.e. where we are dealing with an negative input), the
      code was using 65 - __builtin_clzll (~msb) to compute how many relevant
      bits we have from the msb.  Unfortunately that invokes UB for msb all ones.
      The right number of relevant bits in that case is 1 though (like for
      -2 it is 2 and -4 or -3 3 as already computed) - all we care about from that
      is that the most significant bit is set (i.e. the number is negative) and
      the bits below that should be supplied from the limbs below.
      
      So, the following patch fixes it by special casing it not to invoke UB.
      
      For msb 0 we already have a special case from before (but that is also
      different because msb 0 implies the whole number is 0 given the way
      bitint_reduce_prec works - even if we have limbs like ..., 0x80000000U, 0U
      the reduction can skip the most significant limb and msb then would be
      the one below it), so if iprec > 0, we already don't call __builtin_clzll
      on 0.
      
      2024-02-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* soft-fp/bitint.h (FP_FROM_BITINT): If iprec < 0 and msb is all ones,
      	just set n to 1 instead of using __builtin_clzll (~msb).
      2ca373b7
    • GCC Administrator's avatar
      Daily bump. · bf074ee4
      GCC Administrator authored
      bf074ee4
  29. Feb 12, 2024
    • Iain Sandoe's avatar
      x86, libgcc: Implement ia32 basic heap trampoline [PR113855]. · 5e39897e
      Iain Sandoe authored
      The initial heap trampoline implementation was targeting 64b
      platforms.  As the PR demonstrates this creates an issue where it
      is expected that the same symbols are exported for 32 and 64b.
      
      Rather than conditionalize the exports and code-gen on x86_64,
      this patch provides a basic implementation of the IA32 trampoline.
      
      This also avoids potential user confusion, when a 32b target has
      64b multilibs, and vice versa; which is the case for Darwin.
      
      	PR target/113855
      
      gcc/ChangeLog:
      
      	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
      	available to all sub-targets.
      	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
      	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
      
      libgcc/ChangeLog:
      
      	* config.host: Add trampoline support to x?86-linux.
      	* config/i386/heap-trampoline.c (trampoline_insns): Provide
      	a variant for IA32.
      	(union ix86_trampoline): Likewise.
      	(__gcc_nested_func_ptr_created): Implement a basic trampoline
      	for IA32.
      5e39897e
  30. Feb 11, 2024
Loading