Home | History | Annotate | Line # | Download | only in contrib
      1      1.1  mrg #!/usr/bin/env python3
      2      1.1  mrg 
      3  1.1.1.3  mrg # Copyright (C) 2020-2024 Free Software Foundation, Inc.
      4      1.1  mrg #
      5      1.1  mrg # This file is part of GCC.
      6      1.1  mrg #
      7      1.1  mrg # GCC is free software; you can redistribute it and/or modify
      8      1.1  mrg # it under the terms of the GNU General Public License as published by
      9      1.1  mrg # the Free Software Foundation; either version 3, or (at your option)
     10      1.1  mrg # any later version.
     11      1.1  mrg #
     12      1.1  mrg # GCC is distributed in the hope that it will be useful,
     13      1.1  mrg # but WITHOUT ANY WARRANTY; without even the implied warranty of
     14      1.1  mrg # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15      1.1  mrg # GNU General Public License for more details.
     16      1.1  mrg #
     17      1.1  mrg # You should have received a copy of the GNU General Public License
     18      1.1  mrg # along with GCC; see the file COPYING.  If not, write to
     19      1.1  mrg # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
     20      1.1  mrg # Boston, MA 02110-1301, USA.
     21      1.1  mrg 
     22      1.1  mrg # This script parses a .diff file generated with 'diff -up' or 'diff -cp'
     23      1.1  mrg # and adds a skeleton ChangeLog file to the file. It does not try to be
     24      1.1  mrg # too smart when parsing function names, but it produces a reasonable
     25      1.1  mrg # approximation.
     26      1.1  mrg #
     27      1.1  mrg # Author: Martin Liska <mliska (at] suse.cz>
     28      1.1  mrg 
     29      1.1  mrg import unittest
     30      1.1  mrg 
     31      1.1  mrg from mklog import generate_changelog
     32      1.1  mrg 
     33      1.1  mrg import unidiff
     34      1.1  mrg 
     35      1.1  mrg unidiff_supports_renaming = hasattr(unidiff.PatchedFile(), 'is_rename')
     36      1.1  mrg 
     37      1.1  mrg 
     38      1.1  mrg PATCH1 = '''\
     39      1.1  mrg diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
     40      1.1  mrg index 567c23380fe..e6209ede9d6 100644
     41      1.1  mrg --- a/gcc/config/riscv/riscv.h
     42      1.1  mrg +++ b/gcc/config/riscv/riscv.h
     43      1.1  mrg @@ -920,6 +920,7 @@ extern unsigned riscv_stack_boundary;
     44      1.1  mrg  #define SHIFT_RS1 15
     45      1.1  mrg  #define SHIFT_IMM 20
     46      1.1  mrg  #define IMM_BITS 12
     47      1.1  mrg +#define C_S_BITS 5
     48      1.1  mrg  #define C_SxSP_BITS 6
     49      1.1  mrg  
     50      1.1  mrg  #define IMM_REACH (1LL << IMM_BITS)
     51      1.1  mrg @@ -929,6 +930,10 @@ extern unsigned riscv_stack_boundary;
     52      1.1  mrg  #define SWSP_REACH (4LL << C_SxSP_BITS)
     53      1.1  mrg  #define SDSP_REACH (8LL << C_SxSP_BITS)
     54      1.1  mrg  
     55      1.1  mrg +/* This is the maximum value that can be represented in a compressed load/store
     56      1.1  mrg +   offset (an unsigned 5-bit value scaled by 4).  */
     57      1.1  mrg +#define CSW_MAX_OFFSET ((4LL << C_S_BITS) - 1) & ~3
     58      1.1  mrg +
     59      1.1  mrg  /* Called from RISCV_REORG, this is defined in riscv-sr.c.  */
     60      1.1  mrg  
     61      1.1  mrg  extern void riscv_remove_unneeded_save_restore_calls (void);
     62      1.1  mrg 
     63      1.1  mrg '''
     64      1.1  mrg 
     65      1.1  mrg EXPECTED1 = '''\
     66      1.1  mrg gcc/ChangeLog:
     67      1.1  mrg 
     68      1.1  mrg 	* config/riscv/riscv.h (C_S_BITS):
     69      1.1  mrg 	(CSW_MAX_OFFSET):
     70      1.1  mrg 
     71      1.1  mrg '''
     72      1.1  mrg 
     73      1.1  mrg PATCH2 = '''\
     74      1.1  mrg diff --git a/gcc/targhooks.h b/gcc/targhooks.h
     75      1.1  mrg index 9704d23f1db..b572a36e8cf 100644
     76      1.1  mrg --- a/gcc/targhooks.h
     77      1.1  mrg +++ b/gcc/targhooks.h
     78      1.1  mrg @@ -120,7 +120,7 @@ extern bool default_empty_mask_is_expensive (unsigned);
     79      1.1  mrg  extern void *default_init_cost (class loop *);
     80      1.1  mrg  extern unsigned default_add_stmt_cost (class vec_info *, void *, int,
     81      1.1  mrg  				       enum vect_cost_for_stmt,
     82      1.1  mrg -				       class _stmt_vec_info *, int,
     83      1.1  mrg +				       class _stmt_vec_info *, tree, int,
     84      1.1  mrg  				       enum vect_cost_model_location);
     85      1.1  mrg  extern void default_finish_cost (void *, unsigned *, unsigned *, unsigned *);
     86      1.1  mrg  extern void default_destroy_cost_data (void *);
     87      1.1  mrg @@ -186,6 +186,7 @@ extern tree default_emutls_var_init (tree, tree, tree);
     88      1.1  mrg  extern unsigned int default_hard_regno_nregs (unsigned int, machine_mode);
     89      1.1  mrg  extern bool default_hard_regno_scratch_ok (unsigned int);
     90      1.1  mrg  extern bool default_mode_dependent_address_p (const_rtx, addr_space_t);
     91      1.1  mrg +extern bool default_new_address_profitable_p (rtx, rtx_insn *, rtx);
     92      1.1  mrg  extern bool default_target_option_valid_attribute_p (tree, tree, tree, int);
     93      1.1  mrg  extern bool default_target_option_pragma_parse (tree, tree);
     94      1.1  mrg  extern bool default_target_can_inline_p (tree, tree);
     95      1.1  mrg 
     96      1.1  mrg '''
     97      1.1  mrg 
     98      1.1  mrg EXPECTED2 = '''\
     99      1.1  mrg gcc/ChangeLog:
    100      1.1  mrg 
    101      1.1  mrg 	* targhooks.h (default_add_stmt_cost):
    102      1.1  mrg 	(default_new_address_profitable_p):
    103      1.1  mrg 
    104      1.1  mrg '''
    105      1.1  mrg 
    106      1.1  mrg PATCH3 = '''\
    107      1.1  mrg diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
    108      1.1  mrg index 2b1e33f94ae..7f47402f9b9 100644
    109      1.1  mrg --- a/libcpp/include/cpplib.h
    110      1.1  mrg +++ b/libcpp/include/cpplib.h
    111      1.1  mrg @@ -173,7 +173,7 @@ enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X,
    112      1.1  mrg  	     CLK_STDC2X,
    113      1.1  mrg  	     CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
    114      1.1  mrg  	     CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17,
    115      1.1  mrg -	     CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM};
    116      1.1  mrg +	     CLK_GNUCXX20, CLK_CXX20, CLK_ASM};
    117      1.1  mrg  
    118      1.1  mrg  /* Payload of a NUMBER, STRING, CHAR or COMMENT token.  */
    119      1.1  mrg  struct GTY(()) cpp_string {
    120      1.1  mrg @@ -484,7 +484,7 @@ struct cpp_options
    121      1.1  mrg    /* Nonzero for C2X decimal floating-point constants.  */
    122      1.1  mrg    unsigned char dfp_constants;
    123      1.1  mrg  
    124      1.1  mrg -  /* Nonzero for C++2a __VA_OPT__ feature.  */
    125      1.1  mrg +  /* Nonzero for C++20 __VA_OPT__ feature.  */
    126      1.1  mrg    unsigned char va_opt;
    127      1.1  mrg  
    128      1.1  mrg    /* Nonzero for the '::' token.  */
    129      1.1  mrg 
    130      1.1  mrg '''
    131      1.1  mrg 
    132      1.1  mrg EXPECTED3 = '''\
    133      1.1  mrg libcpp/ChangeLog:
    134      1.1  mrg 
    135      1.1  mrg 	* include/cpplib.h (enum c_lang):
    136      1.1  mrg 	(struct cpp_options):
    137      1.1  mrg 
    138      1.1  mrg '''
    139      1.1  mrg 
    140      1.1  mrg EXPECTED3B = '''\
    141      1.1  mrg libcpp/ChangeLog:
    142      1.1  mrg 
    143      1.1  mrg 	* include/cpplib.h:
    144      1.1  mrg 
    145      1.1  mrg '''
    146      1.1  mrg 
    147      1.1  mrg PATCH4 = '''\
    148      1.1  mrg diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
    149      1.1  mrg index aab79492357..f0df1002488 100644
    150      1.1  mrg --- a/gcc/ipa-icf.c
    151      1.1  mrg +++ b/gcc/ipa-icf.c
    152      1.1  mrg @@ -1,5 +1,7 @@
    153      1.1  mrg  
    154      1.1  mrg  
    155      1.1  mrg +
    156      1.1  mrg +
    157      1.1  mrg  /* Interprocedural Identical Code Folding pass
    158  1.1.1.3  mrg     Copyright (C) 2014-2024 Free Software Foundation, Inc.
    159      1.1  mrg  
    160      1.1  mrg diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
    161      1.1  mrg deleted file mode 100644
    162      1.1  mrg index de15d559f5b..00000000000
    163      1.1  mrg --- a/gcc/testsuite/gcc.dg/pr32374.c
    164      1.1  mrg +++ /dev/null
    165      1.1  mrg @@ -1,20 +0,0 @@
    166      1.1  mrg -/* { dg-do compile } */
    167      1.1  mrg -/* { dg-options "-O2" } */
    168      1.1  mrg -
    169      1.1  mrg -extern int *stderr;
    170      1.1  mrg -
    171      1.1  mrg -void f (int *, const char *, ...);
    172      1.1  mrg -
    173      1.1  mrg -void g (const char *conf_name)
    174      1.1  mrg -{
    175      1.1  mrg -  typedef struct
    176      1.1  mrg -  {
    177      1.1  mrg -    const char *label;
    178      1.1  mrg -    const int value;
    179      1.1  mrg -  } Section;
    180      1.1  mrg -
    181      1.1  mrg -  const Section sections[2] = { {"", 0}, {"", 1} };
    182      1.1  mrg -
    183      1.1  mrg -  f (stderr, "", "", conf_name, 0, sections[0]);
    184      1.1  mrg -  f (stderr, "", "", conf_name, 0, sections[0]);
    185      1.1  mrg -}
    186      1.1  mrg diff --git a/gcc/testsuite/gcc.dg/pr40209.c b/gcc/testsuite/gcc.dg/pr40209.c
    187      1.1  mrg index 4e77df5c2e6..c23d69d1f1b 100644
    188      1.1  mrg --- a/gcc/testsuite/gcc.dg/pr40209.c
    189      1.1  mrg +++ b/gcc/testsuite/gcc.dg/pr40209.c
    190      1.1  mrg @@ -1,6 +1,8 @@
    191      1.1  mrg  /* { dg-do compile } */
    192      1.1  mrg  /* { dg-options "-O2 -fprofile-use -fopt-info -Wno-missing-profile" } */
    193      1.1  mrg  
    194      1.1  mrg +
    195      1.1  mrg +
    196      1.1  mrg  void process(const char *s);
    197      1.1  mrg  
    198      1.1  mrg  struct BaseHolder {
    199      1.1  mrg diff --git a/gcc/testsuite/gcc.dg/pr50209.c b/gcc/testsuite/gcc.dg/pr50209.c
    200      1.1  mrg new file mode 100644
    201      1.1  mrg index 00000000000..b28b04f6431
    202      1.1  mrg --- /dev/null
    203      1.1  mrg +++ b/gcc/testsuite/gcc.dg/pr50209.c
    204      1.1  mrg @@ -0,0 +1,3 @@
    205      1.1  mrg +
    206      1.1  mrg +
    207      1.1  mrg +
    208      1.1  mrg diff --git a/gcc/testsuite/gcc.dg/pr63567-1.c b/gcc/testsuite/gcc.dg/pr63567-1.c
    209      1.1  mrg index 97da171563e..00c5ecc11fa 100644
    210      1.1  mrg --- a/gcc/testsuite/gcc.dg/pr63567-1.c
    211      1.1  mrg +++ b/gcc/testsuite/gcc.dg/pr63567-1.c
    212      1.1  mrg @@ -1,3 +1,4 @@
    213      1.1  mrg +
    214      1.1  mrg  /* PR c/63567 */
    215      1.1  mrg  /* { dg-do compile } */
    216      1.1  mrg  /* { dg-options "" } */
    217      1.1  mrg diff --git a/gcc/varasm.c b/gcc/varasm.c
    218      1.1  mrg index f062e48071f..fd3c7ca8cf3 100644
    219      1.1  mrg --- a/gcc/varasm.c
    220      1.1  mrg +++ b/gcc/varasm.c
    221      1.1  mrg @@ -1,3 +1,5 @@
    222      1.1  mrg +
    223      1.1  mrg +
    224      1.1  mrg  /* Output variables, constants and external declarations, for GNU compiler.
    225  1.1.1.3  mrg     Copyright (C) 1987-2024 Free Software Foundation, Inc.
    226      1.1  mrg  
    227      1.1  mrg diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
    228      1.1  mrg index 4ad78c1f77b..6687b368038 100644
    229      1.1  mrg --- a/libssp/gets-chk.c
    230      1.1  mrg +++ b/libssp/gets-chk.c
    231      1.1  mrg @@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    232      1.1  mrg  <http://www.gnu.org/licenses/>.  */
    233      1.1  mrg  
    234      1.1  mrg  
    235      1.1  mrg +
    236      1.1  mrg +
    237      1.1  mrg  #include "config.h"
    238      1.1  mrg  #include <ssp/ssp.h>
    239      1.1  mrg  #include <stdarg.h>
    240      1.1  mrg '''
    241      1.1  mrg 
    242      1.1  mrg EXPECTED4 = '''\
    243      1.1  mrg 
    244      1.1  mrg 	PR 50209
    245      1.1  mrg 
    246      1.1  mrg gcc/ChangeLog:
    247      1.1  mrg 
    248      1.1  mrg 	* ipa-icf.c:
    249      1.1  mrg 	* varasm.c:
    250      1.1  mrg 
    251      1.1  mrg libssp/ChangeLog:
    252      1.1  mrg 
    253      1.1  mrg 	* gets-chk.c:
    254      1.1  mrg 
    255      1.1  mrg gcc/testsuite/ChangeLog:
    256      1.1  mrg 
    257      1.1  mrg 	* gcc.dg/pr40209.c:
    258      1.1  mrg 	* gcc.dg/pr63567-1.c:
    259      1.1  mrg 	* gcc.dg/pr32374.c: Removed.
    260      1.1  mrg 	* gcc.dg/pr50209.c: New test.
    261      1.1  mrg 
    262      1.1  mrg '''
    263      1.1  mrg 
    264      1.1  mrg PATCH5 = '''\
    265      1.1  mrg diff --git a/gcc/testsuite/gcc.target/i386/pr95046-6.c b/gcc/testsuite/gcc.target/i386/pr95046-6.c
    266      1.1  mrg new file mode 100644
    267      1.1  mrg index 00000000000..dcc8999c446
    268      1.1  mrg --- /dev/null
    269      1.1  mrg +++ b/gcc/testsuite/gcc.target/i386/pr95046-6.c
    270      1.1  mrg @@ -0,0 +1,44 @@
    271      1.1  mrg +/* PR target/95046 */
    272      1.1  mrg +/* { dg-do compile { target { ! ia32 } } } */
    273      1.1  mrg +/* { dg-options "-O3 -mavx512vl" } */
    274      1.1  mrg +
    275      1.1  mrg +
    276      1.1  mrg +double r[2];
    277      1.1  mrg +int s[2];
    278      1.1  mrg +unsigned int u[2];
    279      1.1  mrg +
    280      1.1  mrg +void
    281      1.1  mrg +test_float (void)
    282      1.1  mrg +{
    283      1.1  mrg +  for (int i = 0; i < 2; i++)
    284      1.1  mrg +    r[i] = s[i];
    285      1.1  mrg +}
    286      1.1  mrg +
    287      1.1  mrg +/* { dg-final { scan-assembler "\tvcvtdq2pd" } } */
    288      1.1  mrg +
    289      1.1  mrg +void
    290      1.1  mrg +test_ufloat (void)
    291      1.1  mrg +{
    292      1.1  mrg +  for (int i = 0; i < 2; i++)
    293      1.1  mrg +    r[i] = u[i];
    294      1.1  mrg +}
    295      1.1  mrg +
    296      1.1  mrg +/* { dg-final { scan-assembler "\tvcvtudq2pd" } } */
    297      1.1  mrg +
    298      1.1  mrg +void
    299      1.1  mrg +test_fix (void)
    300      1.1  mrg +{
    301      1.1  mrg +  for (int i = 0; i < 2; i++)
    302      1.1  mrg +    s[i] = r[i];
    303      1.1  mrg +}
    304      1.1  mrg +
    305      1.1  mrg +/* { dg-final { scan-assembler "\tvcvttpd2dqx" } } */
    306      1.1  mrg +
    307      1.1  mrg +void
    308      1.1  mrg +test_ufix (void)
    309      1.1  mrg +{
    310      1.1  mrg +  for (int i = 0; i < 2; i++)
    311      1.1  mrg +    u[i] = r[i];
    312      1.1  mrg +}
    313      1.1  mrg +
    314      1.1  mrg +/* { dg-final { scan-assembler "\tvcvttpd2udqx" } } */
    315      1.1  mrg -- 
    316      1.1  mrg 2.26.2
    317      1.1  mrg 
    318      1.1  mrg '''
    319      1.1  mrg 
    320      1.1  mrg EXPECTED5 = '''\
    321      1.1  mrg PR target/95046 - Vectorize V2SFmode operations
    322      1.1  mrg 
    323      1.1  mrg 	PR target/95046
    324      1.1  mrg 
    325      1.1  mrg gcc/testsuite/ChangeLog:
    326      1.1  mrg 
    327      1.1  mrg 	* gcc.target/i386/pr95046-6.c: New test.
    328      1.1  mrg 
    329      1.1  mrg '''
    330      1.1  mrg 
    331      1.1  mrg PATCH6 = '''\
    332      1.1  mrg diff --git a/gcc/cgraph.h b/gcc/cgraph.h
    333      1.1  mrg index 5ddeb65269b..cfae6e91da9 100644
    334      1.1  mrg --- a/gcc/cgraph.h
    335      1.1  mrg +++ b/gcc/cgraph.h
    336      1.1  mrg @@ -937,7 +937,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node
    337      1.1  mrg        split_part (false), indirect_call_target (false), local (false),
    338      1.1  mrg        versionable (false), can_change_signature (false),
    339      1.1  mrg        redefined_extern_inline (false), tm_may_enter_irr (false),
    340      1.1  mrg -      ipcp_clone (false), m_uid (uid), m_summary_id (-1)
    341      1.1  mrg +      ipcp_clone (false), declare_variant_alt (false),
    342      1.1  mrg +      calls_declare_variant_alt (false), m_uid (uid), m_summary_id (-1)
    343      1.1  mrg    {}
    344      1.1  mrg  
    345      1.1  mrg    /* Remove the node from cgraph and all inline clones inlined into it.
    346      1.1  mrg 
    347      1.1  mrg '''
    348      1.1  mrg 
    349      1.1  mrg EXPECTED6 = '''\
    350      1.1  mrg gcc/ChangeLog:
    351      1.1  mrg 
    352      1.1  mrg 	* cgraph.h (struct cgraph_node):
    353      1.1  mrg 
    354      1.1  mrg '''
    355      1.1  mrg 
    356      1.1  mrg PATCH7 = '''\
    357      1.1  mrg diff --git a/gcc/testsuite/g++.dg/DRs/dr2237.C b/gcc/testsuite/g++.dg/DRs/dr2237.C
    358      1.1  mrg new file mode 100644
    359      1.1  mrg index 00000000000..f3d6d11e61e
    360      1.1  mrg --- /dev/null
    361      1.1  mrg +++ b/gcc/testsuite/g++.dg/DRs/dr2237.C
    362      1.1  mrg @@ -0,0 +1,18 @@
    363      1.1  mrg +// DR 2237 - Can a template-id name a constructor?
    364      1.1  mrg +
    365      1.1  mrg +template<class T>
    366      1.1  mrg +struct X {
    367      1.1  mrg +  X<T>(); // { dg-error "expected" "" { target c++20 } }
    368      1.1  mrg +  X(int); // OK, injected-class-name used
    369      1.1  mrg +  ~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
    370      1.1  mrg +};
    371      1.1  mrg +
    372      1.1  mrg +// ill-formed since DR1435
    373      1.1  mrg +template<typename T> X<T>::X<T>() {} // { dg-error "names the constructor|as no template constructors" }
    374      1.1  mrg +template<typename T> X<T>::~X<T>() {} // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
    375      1.1  mrg +
    376      1.1  mrg +struct Q {
    377      1.1  mrg +  // ill-formed since DR1435
    378      1.1  mrg +  template<typename T> friend X<T>::X<T>(); // { dg-error "names the constructor|as no template constructors" }
    379      1.1  mrg +  template<typename T> friend X<T>::~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
    380      1.1  mrg +};
    381      1.1  mrg '''
    382      1.1  mrg 
    383      1.1  mrg EXPECTED7 = '''\
    384      1.1  mrg 
    385      1.1  mrg 	DR 2237
    386      1.1  mrg 
    387      1.1  mrg gcc/testsuite/ChangeLog:
    388      1.1  mrg 
    389      1.1  mrg 	* g++.dg/DRs/dr2237.C: New test.
    390      1.1  mrg 
    391      1.1  mrg '''
    392      1.1  mrg 
    393      1.1  mrg PATCH8 = '''\
    394      1.1  mrg diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf2.c
    395      1.1  mrg similarity index 100%
    396      1.1  mrg rename from gcc/ipa-icf.c
    397      1.1  mrg rename to gcc/ipa-icf2.c
    398      1.1  mrg '''
    399      1.1  mrg 
    400      1.1  mrg EXPECTED8 = '''\
    401      1.1  mrg gcc/ChangeLog:
    402      1.1  mrg 
    403  1.1.1.3  mrg 	* ipa-icf.c: Move to...
    404      1.1  mrg 	* ipa-icf2.c: ...here.
    405      1.1  mrg 
    406      1.1  mrg '''
    407      1.1  mrg 
    408      1.1  mrg PATCH9 = '''\
    409      1.1  mrg diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
    410      1.1  mrg index 2a260c1cfbd..7f03fc491c3 100644
    411      1.1  mrg --- a/gcc/config/i386/sse.md
    412      1.1  mrg +++ b/gcc/config/i386/sse.md
    413      1.1  mrg @@ -17611,6 +17611,23 @@ (define_insn "avx2_<code>v16qiv16hi2<mask_name>"
    414      1.1  mrg     (set_attr "prefix" "maybe_evex")
    415      1.1  mrg     (set_attr "mode" "OI")])
    416      1.1  mrg  
    417      1.1  mrg +(define_insn_and_split "*avx2_zero_extendv16qiv16hi2_1"
    418      1.1  mrg +  [(set (match_operand:V32QI 0 "register_operand" "=v")
    419      1.1  mrg +	(vec_select:V32QI
    420      1.1  mrg +	  (vec_concat:V64QI
    421      1.1  mrg +	    (match_operand:V32QI 1 "nonimmediate_operand" "vm")
    422      1.1  mrg +	    (match_operand:V32QI 2 "const0_operand" "C"))
    423      1.1  mrg +	  (match_parallel 3 "pmovzx_parallel"
    424      1.1  mrg +	    [(match_operand 4 "const_int_operand" "n")])))]
    425      1.1  mrg +  "TARGET_AVX2"
    426      1.1  mrg +  "#"
    427      1.1  mrg +  "&& reload_completed"
    428      1.1  mrg +  [(set (match_dup 0) (zero_extend:V16HI (match_dup 1)))]
    429      1.1  mrg +{
    430      1.1  mrg +  operands[0] = lowpart_subreg (V16HImode, operands[0], V32QImode);
    431      1.1  mrg +  operands[1] = lowpart_subreg (V16QImode, operands[1], V32QImode);
    432      1.1  mrg +})
    433      1.1  mrg +
    434      1.1  mrg  (define_expand "<insn>v16qiv16hi2"
    435      1.1  mrg    [(set (match_operand:V16HI 0 "register_operand")
    436      1.1  mrg  	(any_extend:V16HI
    437      1.1  mrg '''
    438      1.1  mrg 
    439      1.1  mrg EXPECTED9 = '''\
    440      1.1  mrg gcc/ChangeLog:
    441      1.1  mrg 
    442      1.1  mrg 	* config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1):
    443      1.1  mrg 
    444      1.1  mrg '''
    445      1.1  mrg 
    446  1.1.1.2  mrg PATCH10 = '''\
    447  1.1.1.2  mrg diff --git a/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
    448  1.1.1.2  mrg new file mode 100644
    449  1.1.1.2  mrg index 00000000000..ad3c6d856fc
    450  1.1.1.2  mrg --- /dev/null
    451  1.1.1.2  mrg +++ b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
    452  1.1.1.2  mrg @@ -0,0 +1,3 @@
    453  1.1.1.2  mrg +
    454  1.1.1.2  mrg +
    455  1.1.1.2  mrg +
    456  1.1.1.2  mrg 
    457  1.1.1.2  mrg '''
    458  1.1.1.2  mrg 
    459  1.1.1.2  mrg EXPECTED10 = '''\
    460  1.1.1.2  mrg libgomp/ChangeLog:
    461  1.1.1.2  mrg 
    462  1.1.1.2  mrg 	* doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst:
    463  1.1.1.2  mrg 	New file.
    464  1.1.1.2  mrg 
    465  1.1.1.2  mrg '''
    466  1.1.1.2  mrg 
    467      1.1  mrg class TestMklog(unittest.TestCase):
    468      1.1  mrg     def test_macro_definition(self):
    469      1.1  mrg         changelog = generate_changelog(PATCH1)
    470      1.1  mrg         assert changelog == EXPECTED1
    471      1.1  mrg 
    472      1.1  mrg     def test_changed_argument(self):
    473      1.1  mrg         changelog = generate_changelog(PATCH2)
    474      1.1  mrg         assert changelog == EXPECTED2
    475      1.1  mrg 
    476      1.1  mrg     def test_enum_and_struct(self):
    477      1.1  mrg         changelog = generate_changelog(PATCH3)
    478      1.1  mrg         assert changelog == EXPECTED3
    479      1.1  mrg 
    480      1.1  mrg     def test_no_function(self):
    481      1.1  mrg         changelog = generate_changelog(PATCH3, True)
    482      1.1  mrg         assert changelog == EXPECTED3B
    483      1.1  mrg 
    484      1.1  mrg     def test_sorting(self):
    485      1.1  mrg         changelog = generate_changelog(PATCH4)
    486      1.1  mrg         assert changelog == EXPECTED4
    487      1.1  mrg 
    488      1.1  mrg     def test_pr_bugzilla_download(self):
    489      1.1  mrg         changelog = generate_changelog(PATCH5, fill_pr_titles=True)
    490      1.1  mrg         assert changelog == EXPECTED5
    491      1.1  mrg 
    492      1.1  mrg     def test_gty_in_struct(self):
    493      1.1  mrg         changelog = generate_changelog(PATCH6, fill_pr_titles=True)
    494      1.1  mrg         assert changelog == EXPECTED6
    495      1.1  mrg 
    496      1.1  mrg     def test_dr_detection_in_test_case(self):
    497      1.1  mrg         changelog = generate_changelog(PATCH7)
    498      1.1  mrg         assert changelog == EXPECTED7
    499      1.1  mrg 
    500      1.1  mrg     @unittest.skipIf(not unidiff_supports_renaming,
    501      1.1  mrg                      'Newer version of unidiff is needed (0.6.0+)')
    502      1.1  mrg     def test_renaming(self):
    503      1.1  mrg         changelog = generate_changelog(PATCH8)
    504      1.1  mrg         assert changelog == EXPECTED8
    505      1.1  mrg 
    506      1.1  mrg     def test_define_macro_parsing(self):
    507      1.1  mrg         changelog = generate_changelog(PATCH9)
    508      1.1  mrg         assert changelog == EXPECTED9
    509  1.1.1.2  mrg 
    510  1.1.1.2  mrg     def test_long_filenames(self):
    511  1.1.1.2  mrg         changelog = generate_changelog(PATCH10)
    512  1.1.1.2  mrg         assert changelog == EXPECTED10
    513