1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mbmi2 -fdump-tree-optimized" } */
3 /* { dg-final { scan-tree-dump-not "link_error" "optimized" } } */
7 extern void link_error (void);
15 asm volatile ("" : : "g" (&a
), "g" (&b
) : "memory");
16 if (_pext_u32 (0xabcdef98, 0xffff0000) != 0xabcd
17 || _pext_u32 (0xabcdef98, 0xffffff00) != 0xabcdef
18 || _pext_u32 (0xabcdef98, 0x0f0f0f0f) != 0xbdf8
19 || _pext_u32 (0xabcdef98, 0xff0fff0f) != 0xabdef8
20 || _pext_u32 (0xabcdef98, 0x000fffff) != 0xdef98
21 || _pext_u32 (a
, 0xffffffff) != a
)
24 if (_pext_u64 (0xabcdef9876543210UL
, 0xffffffff00000000UL
) != 0xabcdef98UL
25 || _pext_u64 (0xabcdef9876543210UL
, 0xffffffffffffff00UL
) != 0xabcdef98765432UL
26 || _pext_u64 (0xabcdef9876543210UL
, 0x0f0f0f0f0f0f0f0fUL
) != 0xbdf86420UL
27 || _pext_u64 (0xabcdef9876543210UL
, 0xff0fff0fff0fff0fUL
) != 0xabdef8764320UL
28 || _pext_u64 (0xabcdef9876543210UL
, 0x00000000000fffffUL
) != 0x43210UL
29 || _pext_u64 (b
, 0xffffffffffffffffUL
) != b
)