(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
target-attribute/
tattr-arch-tune-1.c
       1  /* Functional tests for the "target" attribute and pragma.  */
       2  
       3  /* { dg-require-effective-target target_attribute } */
       4  /* { dg-options "-mdebug -march=z13" } */
       5  
       6  /**
       7   ** no pragma
       8   **/
       9  
      10  void fn_p0_1 (void) { }
      11  /* { dg-final { scan-assembler "fn:fn_p0_1 ar7" } } */
      12  /* { dg-final { scan-assembler "fn:fn_p0_1 tu7" } } */
      13  
      14  __attribute__ ((target("arch=zEC12")))
      15  void fn_p0_2 (void) { }
      16  /* { dg-final { scan-assembler "fn:fn_p0_2 ar6" } } */
      17  /* { dg-final { scan-assembler "fn:fn_p0_2 tu6" } } */
      18  
      19  __attribute__ ((target("tune=z196")))
      20  void fn_p0_3 (void) { }
      21  /* { dg-final { scan-assembler "fn:fn_p0_3 ar7" } } */
      22  /* { dg-final { scan-assembler "fn:fn_p0_3 tu5" } } */
      23  
      24  __attribute__ ((target("arch=zEC12,tune=z196")))
      25  void fn_p0_4 (void) { }
      26  /* { dg-final { scan-assembler "fn:fn_p0_4 ar6" } } */
      27  /* { dg-final { scan-assembler "fn:fn_p0_4 tu5" } } */
      28  
      29  __attribute__ ((target("tune=z196,arch=zEC12")))
      30  void fn_p0_5 (void) { }
      31  /* { dg-final { scan-assembler "fn:fn_p0_5 ar6" } } */
      32  /* { dg-final { scan-assembler "fn:fn_p0_5 tu5" } } */
      33  
      34  /**
      35   ** arch pragma
      36   **/
      37  
      38  #pragma GCC target ("arch=z9-ec")
      39  
      40  void fn_pa_1 (void) { }
      41  /* { dg-final { scan-assembler "fn:fn_pa_1 ar3" } } */
      42  /* { dg-final { scan-assembler "fn:fn_pa_1 tu3" } } */
      43  
      44  __attribute__ ((target("arch=zEC12")))
      45  void fn_pa_2 (void) { }
      46  /* { dg-final { scan-assembler "fn:fn_pa_2 ar6" } } */
      47  /* { dg-final { scan-assembler "fn:fn_pa_2 tu6" } } */
      48  
      49  __attribute__ ((target("tune=z196")))
      50  void fn_pa_3 (void) { }
      51  /* { dg-final { scan-assembler "fn:fn_pa_3 ar3" } } */
      52  /* { dg-final { scan-assembler "fn:fn_pa_3 tu5" } } */
      53  
      54  __attribute__ ((target("arch=zEC12,tune=z196")))
      55  void fn_pa_4 (void) { }
      56  /* { dg-final { scan-assembler "fn:fn_pa_4 ar6" } } */
      57  /* { dg-final { scan-assembler "fn:fn_pa_4 tu5" } } */
      58  
      59  __attribute__ ((target("tune=z196,arch=zEC12")))
      60  void fn_pa_5 (void) { }
      61  /* { dg-final { scan-assembler "fn:fn_pa_5 ar6" } } */
      62  /* { dg-final { scan-assembler "fn:fn_pa_5 tu5" } } */
      63  
      64  #pragma GCC reset_options
      65  
      66  /**
      67   ** tune pragma
      68   **/
      69  
      70  #pragma GCC target ("tune=z9-109")
      71  
      72  void fn_pt_1 (void) { }
      73  /* { dg-final { scan-assembler "fn:fn_pt_1 ar7" } } */
      74  /* { dg-final { scan-assembler "fn:fn_pt_1 tu2" } } */
      75  
      76  __attribute__ ((target("arch=zEC12")))
      77  void fn_pt_2 (void) { }
      78  /* { dg-final { scan-assembler "fn:fn_pt_2 ar6" } } */
      79  /* { dg-final { scan-assembler "fn:fn_pt_2 tu2" } } */
      80  
      81  __attribute__ ((target("tune=z196")))
      82  void fn_pt_3 (void) { }
      83  /* { dg-final { scan-assembler "fn:fn_pt_3 ar7" } } */
      84  /* { dg-final { scan-assembler "fn:fn_pt_3 tu5" } } */
      85  
      86  __attribute__ ((target("arch=zEC12,tune=z196")))
      87  void fn_pt_4 (void) { }
      88  /* { dg-final { scan-assembler "fn:fn_pt_4 ar6" } } */
      89  /* { dg-final { scan-assembler "fn:fn_pt_4 tu5" } } */
      90  
      91  __attribute__ ((target("tune=z196,arch=zEC12")))
      92  void fn_pt_5 (void) { }
      93  /* { dg-final { scan-assembler "fn:fn_pt_5 ar6" } } */
      94  /* { dg-final { scan-assembler "fn:fn_pt_5 tu5" } } */
      95  
      96  #pragma GCC reset_options
      97  
      98  /**
      99   ** arch and tune pragmas
     100   **/
     101  
     102  #pragma GCC target ("arch=z9-ec,tune=z9-109")
     103  
     104  void fn_pat_1 (void) { }
     105  /* { dg-final { scan-assembler "fn:fn_pat_1 ar3" } } */
     106  /* { dg-final { scan-assembler "fn:fn_pat_1 tu2" } } */
     107  
     108  __attribute__ ((target("arch=zEC12")))
     109  void fn_pat_2 (void) { }
     110  /* { dg-final { scan-assembler "fn:fn_pat_2 ar6" } } */
     111  /* { dg-final { scan-assembler "fn:fn_pat_2 tu2" } } */
     112  
     113  __attribute__ ((target("tune=z196")))
     114  void fn_pat_3 (void) { }
     115  /* { dg-final { scan-assembler "fn:fn_pat_3 ar3" } } */
     116  /* { dg-final { scan-assembler "fn:fn_pat_3 tu5" } } */
     117  
     118  __attribute__ ((target("arch=zEC12,tune=z196")))
     119  void fn_pat_4 (void) { }
     120  /* { dg-final { scan-assembler "fn:fn_pat_4 ar6" } } */
     121  /* { dg-final { scan-assembler "fn:fn_pat_4 tu5" } } */
     122  
     123  __attribute__ ((target("tune=z196,arch=zEC12")))
     124  void fn_pat_5 (void) { }
     125  /* { dg-final { scan-assembler "fn:fn_pat_5 ar6" } } */
     126  /* { dg-final { scan-assembler "fn:fn_pat_5 tu5" } } */
     127  
     128  #pragma GCC reset_options
     129  
     130  /**
     131   ** tune and arch pragmas
     132   **/
     133  
     134  #pragma GCC target ("tune=z9-109,arch=z9-ec")
     135  
     136  void fn_pta_1 (void) { }
     137  /* { dg-final { scan-assembler "fn:fn_pta_1 ar3" } } */
     138  /* { dg-final { scan-assembler "fn:fn_pta_1 tu2" } } */
     139  
     140  __attribute__ ((target("arch=zEC12")))
     141  void fn_pta_2 (void) { }
     142  /* { dg-final { scan-assembler "fn:fn_pta_2 ar6" } } */
     143  /* { dg-final { scan-assembler "fn:fn_pta_2 tu2" } } */
     144  
     145  __attribute__ ((target("tune=z196")))
     146  void fn_pta_3 (void) { }
     147  /* { dg-final { scan-assembler "fn:fn_pta_3 ar3" } } */
     148  /* { dg-final { scan-assembler "fn:fn_pta_3 tu5" } } */
     149  
     150  __attribute__ ((target("arch=zEC12,tune=z196")))
     151  void fn_pta_4 (void) { }
     152  /* { dg-final { scan-assembler "fn:fn_pta_4 ar6" } } */
     153  /* { dg-final { scan-assembler "fn:fn_pta_4 tu5" } } */
     154  
     155  __attribute__ ((target("tune=z196,arch=zEC12")))
     156  void fn_pta_5 (void) { }
     157  /* { dg-final { scan-assembler "fn:fn_pta_5 ar6" } } */
     158  /* { dg-final { scan-assembler "fn:fn_pta_5 tu5" } } */
     159  
     160  #pragma GCC reset_options