(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr106095.c
       1  /* PR gcc/106095 */
       2  /* { dg-do assemble } */
       3  /* { dg-options "-mavx512vl -masm=intel" } */
       4  /* { dg-require-effective-target masm_intel } */
       5  
       6  #include <immintrin.h>
       7  #include <stdlib.h>
       8  
       9  typedef int v4si __attribute__ ((vector_size (16)));
      10  typedef long long v2di __attribute__ ((vector_size (16)));
      11  typedef long long v4di __attribute__ ((vector_size (32)));
      12  typedef double v2df __attribute__ ((vector_size (16)));
      13  typedef float v4sf __attribute__ ((vector_size (16)));
      14  
      15  void bug1(void) {
      16      v4si ints4 = {0, 1, 2, 3};
      17      unsigned long long *addr = malloc(sizeof(*addr));
      18      __builtin_ia32_pmovdw128mem_mask(addr, ints4, 0);
      19  }
      20  
      21  int bug2(void) {
      22      v2df a = {0.0, 0.0};
      23      v4sf b = {0.0, 0.0, 0.0, 0.0};
      24      v2df src = {0.0, 0.0};
      25      v2df res = __builtin_ia32_cvtss2sd_mask_round(a, b, src, 0, _MM_FROUND_NO_EXC);
      26      return (int)res[0];
      27  }
      28  
      29  int bug3(void) {
      30      v4sf a = {0.0, 0.0, 0.0, 0.0};
      31      v2df b = {0.0, 0.0};
      32      v4sf src = {0.0, 0.0, 0.0, 0.0};
      33      v4sf res = __builtin_ia32_cvtsd2ss_mask_round(a, b, src, 0, _MM_FROUND_NO_EXC);
      34      return (int)res[0];
      35  }
      36  
      37  int bug4(void) {
      38      v4di ints4 = {0, 1, 2, 3};
      39      unsigned long long *addr = malloc(sizeof(*addr));
      40      __builtin_ia32_pmovqw256mem_mask(addr, ints4, 0);
      41  }
      42  
      43  int bug5(void) {
      44      v2di ints4 = {0, 1};
      45      unsigned int *addr = malloc(sizeof(*addr));
      46      __builtin_ia32_pmovqw128mem_mask(addr, ints4, 0);
      47  }