blob: f1d7f82cde82c9940a347bf294fb1a1d47f8a7f0 [file] [log] [blame]
/* PR ipa/99517 */
/* { dg-do run { target avx2 } } */
/* { dg-additional-sources "avx2-pr99517-2.c" } */
/* { dg-options "-O2 -mavx2" } */
#include "avx2-check.h"
typedef signed char v32qi __attribute__((vector_size(32)));
typedef int v4si __attribute__((vector_size(16)));
typedef long long int v4di __attribute__((vector_size(32)));
typedef double v4df __attribute__((vector_size(32)));
extern v32qi foo (v4si);
extern v32qi bar (v4si);
static void
avx2_test (void)
{
v4si a = { 1, -2, 3, -4 };
__asm ("" : "+x" (a));
v4di b = (v4di) bar (a);
v4df c = (v4df) foo (a);
if (b[0] != 1 || c[0] != 1.0 || b[1] != -2 || c[1] != -2.0
|| b[2] != 3 || c[2] != 3.0 || b[3] != -4 || c[3] != -4.0)
__builtin_abort ();
}