/* { dg-do compile } */ /* { dg-require-effective-target power10_ok } */ /* { dg-options "-mdejagnu-cpu=power10 -O2" } */ /* Test generating V2DImode constants that have the same bit pattern as V2DFmode constants that can be loaded with the XXSPLTIDP instruction with the ISA 3.1 (power10). */ vector long long vector_0 (void) { /* XXSPLTIB or XXLXOR. */ return (vector long long) { 0LL, 0LL }; } vector long long vector_1 (void) { /* XXSPLTIB and VEXTSB2D. */ return (vector long long) { 1LL, 1LL }; } /* 0x8000000000000000LL is the bit pattern for -0.0, which can be generated with XXSPLTISDP. */ vector long long vector_float_neg_0 (void) { /* XXSPLTIDP. */ return (vector long long) { 0x8000000000000000LL, 0x8000000000000000LL }; } /* 0x3ff0000000000000LL is the bit pattern for 1.0 which can be generated with XXSPLTISDP. */ vector long long vector_float_1_0 (void) { /* XXSPLTIDP. */ return (vector long long) { 0x3ff0000000000000LL, 0x3ff0000000000000LL }; } /* 0x400921fb54442d18LL is the bit pattern for PI, which cannot be generated with XXSPLTIDP. */ vector long long scalar_pi (void) { /* PLXV. */ return (vector long long) { 0x400921fb54442d18LL, 0x400921fb54442d18LL }; } /* { dg-final { scan-assembler-times {\mxxspltidp\M} 2 } } */