/* { dg-do compile } */ /* { dg-options "-O2" } */ unsigned long long combine_non_consecutive (unsigned long long a, unsigned long long b) { return (a & 0xfffffff200f00000ll) | (b & 0x00001000ffffffffll); } void foo4 (unsigned long long a, unsigned long long b, unsigned long long *c, unsigned long long *d) { /* { dg-final { scan-assembler-not "bfxil\\t" } } */ *c = combine_non_consecutive (a, b); *d = combine_non_consecutive (b, a); }