aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr78547.c
blob: 9300cbc933250da736bac21f889272cbae03bc24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* PR rtl-optimization/78547 */
/* { dg-do compile { target int128 } } */
/* { dg-options "-Os -g -freorder-blocks-algorithm=simple -Wno-psabi" } */
/* { dg-additional-options "-mstringop-strategy=libcall" { target i?86-*-* x86_64-*-* } } */

typedef unsigned __int128 u128;
typedef unsigned __int128 V __attribute__ ((vector_size (64)));

V
foo (u128 a, u128 b, u128 c, V d)
{
  V e = (V) {a};
  V f = e & 1;
  e = 0 != e;
  c = c;
  f = f << ((V) {c} & 7);
  return f + e;
}