simd-5.c

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

C
60
字号
/* Test saving and restoring of SIMD registers.  */typedef short Q __attribute__((vector_size(8)));Q q1 = {1, 2}, q2 = {3, 4}, q3 = {5, 6}, q4 = {7, 8};Q w1, w2, w3, w4;Q z1, z2, z3, z4;volatile int dummy;void  __attribute__((__noinline__))func0 (void){  dummy = 1;}void __attribute__((__noinline__))func1 (void){  Q a, b;  a = q1 * q2;  b = q3 * q4;  w1 = a;  w2 = b;  func0 ();  w3 = a;  w4 = b;}void __attribute__((__noinline__))func2 (void){  Q a, b;  a = q1 + q2;  b = q3 - q4;  z1 = a;  z2 = b;  func1 ();  z3 = a;  z4 = b;}intmain (void){  func2 ();  if (memcmp (&w1, &w3, sizeof (Q)) != 0)    abort ();  if (memcmp (&w2, &w4, sizeof (Q)) != 0)    abort ();  if (memcmp (&z1, &z3, sizeof (Q)) != 0)    abort ();  if (memcmp (&z2, &z4, sizeof (Q)) != 0)    abort ();  return 0;}

⌨️ 快捷键说明

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