1  /* Functional tests for the "target" attribute and pragma.  */
       2  
       3  /* { dg-do assemble { target { lp64 } } } */
       4  /* { dg-require-effective-target target_attribute } */
       5  /* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */
       6  
       7  /**
       8   **
       9   ** Start
      10   **
      11   **/
      12  
      13  void fn_default_start (void) { }
      14  /* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */
      15  /* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */
      16  /* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */
      17  /* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */
      18  /* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */
      19  /* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */
      20  /* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */
      21  /* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */
      22  /* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */
      23  /* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */
      24  /* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */
      25  /* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */
      26  /* { dg-final { scan-assembler "fn:fn_default_start se0" } } */
      27  /* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */
      28  /* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */
      29  /* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */
      30  
      31  /**
      32   **
      33   ** Attribute
      34   **
      35   **/
      36  
      37  __attribute__ ((target ("branch-cost=2")))
      38  void fn_att_1 (void) { }
      39  /* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */
      40  /* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */
      41  /* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */
      42  /* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */
      43  /* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */
      44  /* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */
      45  /* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */
      46  /* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */
      47  /* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */
      48  /* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */
      49  /* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */
      50  /* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */
      51  /* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */
      52  /* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */
      53  /* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */
      54  /* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */
      55  
      56  void fn_att_1_default (void) { }
      57  
      58  __attribute__ ((target ("branch-cost=1")))
      59  void fn_att_0 (void) { }
      60  /* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */
      61  /* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */
      62  /* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */
      63  /* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */
      64  /* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */
      65  /* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */
      66  /* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */
      67  /* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */
      68  /* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */
      69  /* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */
      70  /* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */
      71  /* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */
      72  /* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */
      73  /* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */
      74  /* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */
      75  /* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */
      76  
      77  void fn_att_0_default (void) { }
      78  
      79  __attribute__ ((target ("branch-cost=1,branch-cost=2")))
      80  void fn_att_0_1 (void) { }
      81  /* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */
      82  /* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */
      83  /* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */
      84  /* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */
      85  /* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */
      86  /* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */
      87  /* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */
      88  /* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */
      89  /* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */
      90  /* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */
      91  /* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */
      92  /* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */
      93  /* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */
      94  /* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */
      95  /* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */
      96  /* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */
      97  
      98  __attribute__ ((target ("branch-cost=2,branch-cost=1")))
      99  void fn_att_1_0 (void) { }
     100  /* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */
     101  /* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */
     102  /* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */
     103  /* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */
     104  /* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */
     105  /* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */
     106  /* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */
     107  /* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */
     108  /* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */
     109  /* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */
     110  /* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */
     111  /* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */
     112  /* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */
     113  /* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */
     114  /* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */
     115  /* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */
     116  
     117  /**
     118   **
     119   ** Pragma
     120   **
     121   **/
     122  
     123  #pragma GCC target ("branch-cost=2")
     124  void fn_pragma_1 (void) { }
     125  /* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */
     126  /* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */
     127  /* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */
     128  /* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */
     129  /* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */
     130  /* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */
     131  /* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */
     132  /* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */
     133  /* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */
     134  /* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */
     135  /* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */
     136  /* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */
     137  /* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */
     138  /* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */
     139  /* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */
     140  /* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */
     141  #pragma GCC reset_options
     142  
     143  void fn_pragma_1_default (void) { }
     144  /* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */
     145  /* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */
     146  /* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */
     147  /* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */
     148  /* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */
     149  /* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */
     150  /* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */
     151  /* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */
     152  /* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */
     153  /* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */
     154  /* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */
     155  /* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */
     156  /* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */
     157  /* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */
     158  /* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */
     159  /* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */
     160  
     161  #pragma GCC target ("branch-cost=1")
     162  void fn_pragma_0 (void) { }
     163  /* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */
     164  /* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */
     165  /* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */
     166  /* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */
     167  /* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */
     168  /* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */
     169  /* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */
     170  /* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */
     171  /* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */
     172  /* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */
     173  /* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */
     174  /* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */
     175  /* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */
     176  /* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */
     177  /* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */
     178  /* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */
     179  #pragma GCC reset_options
     180  
     181  void fn_pragma_0_default (void) { }
     182  /* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */
     183  /* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */
     184  /* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */
     185  /* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */
     186  /* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */
     187  /* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */
     188  /* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */
     189  /* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */
     190  /* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */
     191  /* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */
     192  /* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */
     193  /* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */
     194  /* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */
     195  /* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */
     196  /* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */
     197  /* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */
     198  
     199  #pragma GCC target ("branch-cost=1")
     200  #pragma GCC target ("branch-cost=2")
     201  void fn_pragma_0_1 (void) { }
     202  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */
     203  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */
     204  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */
     205  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */
     206  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */
     207  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */
     208  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */
     209  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */
     210  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */
     211  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */
     212  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */
     213  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */
     214  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */
     215  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */
     216  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */
     217  /* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */
     218  #pragma GCC reset_options
     219  
     220  #pragma GCC target ("branch-cost=2")
     221  #pragma GCC target ("branch-cost=1")
     222  void fn_pragma_1_0 (void) { }
     223  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */
     224  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */
     225  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */
     226  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */
     227  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */
     228  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */
     229  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */
     230  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */
     231  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */
     232  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */
     233  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */
     234  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */
     235  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */
     236  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */
     237  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */
     238  /* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */
     239  #pragma GCC reset_options
     240  
     241  /**
     242   **
     243   ** Pragma and attribute
     244   **
     245   **/
     246  
     247  #pragma GCC target ("branch-cost=2")
     248  __attribute__ ((target ("branch-cost=2")))
     249  void fn_pragma_1_att_1 (void) { }
     250  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */
     251  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */
     252  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */
     253  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */
     254  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */
     255  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */
     256  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */
     257  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */
     258  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */
     259  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */
     260  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */
     261  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */
     262  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */
     263  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */
     264  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */
     265  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */
     266  #pragma GCC reset_options
     267  
     268  #pragma GCC target ("branch-cost=2")
     269  __attribute__ ((target ("branch-cost=2")))
     270  void fn_pragma_0_att_1 (void) { }
     271  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */
     272  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */
     273  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */
     274  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */
     275  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */
     276  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */
     277  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */
     278  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */
     279  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */
     280  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */
     281  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */
     282  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */
     283  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */
     284  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */
     285  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */
     286  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */
     287  #pragma GCC reset_options
     288  
     289  #pragma GCC target ("branch-cost=2")
     290  __attribute__ ((target ("branch-cost=1")))
     291  void fn_pragma_1_att_0 (void) { }
     292  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */
     293  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */
     294  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */
     295  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */
     296  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */
     297  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */
     298  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */
     299  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */
     300  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */
     301  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */
     302  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */
     303  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */
     304  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */
     305  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */
     306  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */
     307  /* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */
     308  #pragma GCC reset_options
     309  
     310  #pragma GCC target ("branch-cost=2")
     311  __attribute__ ((target ("branch-cost=1")))
     312  void fn_pragma_0_att_0 (void) { }
     313  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */
     314  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */
     315  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */
     316  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */
     317  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */
     318  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */
     319  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */
     320  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */
     321  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */
     322  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */
     323  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */
     324  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */
     325  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */
     326  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */
     327  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */
     328  /* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */
     329  #pragma GCC reset_options
     330  
     331  /**
     332   **
     333   ** End
     334   **
     335   **/
     336  
     337  void fn_default_end (void) { }
     338  /* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */
     339  /* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */
     340  /* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */
     341  /* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */
     342  /* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */
     343  /* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */
     344  /* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */
     345  /* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */
     346  /* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */
     347  /* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */
     348  /* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */
     349  /* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */
     350  /* { dg-final { scan-assembler "fn:fn_default_end se0" } } */
     351  /* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */
     352  /* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */
     353  /* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */