pr35907.c

来自「用于进行gcc测试」· C语言 代码 · 共 60 行

C
60
字号
/* PR target/35907 *//* { dg-do run { target powerpc*-*-* } } *//* { dg-require-effective-target powerpc_altivec_ok } *//* { dg-options "-O2 -maltivec" } */#include "altivec_check.h"#define vector __attribute__((vector_size (16)))union{  vector int k;  int c[16];} u, v, w;vector int m;void __attribute__((noinline))bar (void *i, vector int j){  asm volatile ("" : : "r" (i), "r" (&j) : "memory");}int __attribute__((noinline))foo (int i, vector int j){  char *p = __builtin_alloca (64 + i);  m += u.k;  v.k = m;  w.k = j;  if (__builtin_memcmp (&v.c, &w.c, 16) != 0)    __builtin_abort ();  j += u.k;  bar (p, j);  j += u.k;  bar (p, j);  return 0;}voidtest (void){  vector int l;  int i;  for (i = 0; i < 4; i++)    u.c[i] = i;  l = u.k;  if (foo (64, l))    __builtin_abort ();  l += u.k;  if (foo (64, l))    __builtin_abort ();}intmain (){  altivec_check ();  test ();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?