(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr102230.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mavx512fp16" } */
       3  
       4  typedef _Float16 v4hf __attribute__ ((vector_size (8)));
       5  typedef _Float16 v2hf __attribute__ ((vector_size (4)));
       6  
       7  v4hf
       8  v4hf_abi_1 (v4hf a)
       9  {
      10    return a;
      11  }
      12  
      13  v4hf
      14  v4hf_abi_3 (v4hf a, v4hf b, v4hf c)
      15  {
      16    return c;
      17  }
      18  
      19  /* { dg-final { scan-assembler-times "movq\[\\t \]*%mm2, %mm0" 1 { target ia32 } } } */
      20  /* { dg-final { scan-assembler-times "vmovaps\[\\t \]*%xmm2, %xmm0" 1 { target { ! ia32 } } } } */
      21  
      22  v4hf
      23  v4hf_abi_4 (v4hf a, v4hf b, v4hf c, v4hf d)
      24  {
      25    return d;
      26  }
      27  
      28  /* { dg-final { scan-assembler-times "movq\[\\t \]*4\\(%esp\\), %mm0" 1 { target ia32 } } } */
      29  /* { dg-final { scan-assembler-times "vmovaps\[\\t \]*%xmm3, %xmm0" 1 { target { ! ia32 } } } } */
      30  
      31  v2hf
      32  v2hf_test (v2hf a, v2hf b, v2hf c, v2hf d)
      33  {
      34    return b;
      35  }
      36  
      37  /* { dg-final { scan-assembler-times "movl\[\\t \]*8\\(%esp\\), %eax" 1 { target ia32 } } } */
      38  /* { dg-final { scan-assembler-times "vmovaps\[\\t \]*%xmm1, %xmm0" 1 { target { ! ia32 } } } } */