From a6c50ec2c6ebcbda2b032eee0552a6a486355e12 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 24 Oct 2025 09:00:59 +0800 Subject: [PATCH] Add -ffuse-ops-with-volatile-access Volatile memory can be used as source operand for any operations. Add -ffuse-ops-with-volatile-access to fuse operations with volatile memory reference and update simplify_binary_operation_1 to keep PLUS for 2 volatile memory references. On x86, this optimizes extern volatile int bar; int foo (int z) { z *= 123; return bar + z; } into foo: imull $123, %edi, %eax addl bar(%rip), %eax ret and compile extern volatile unsigned char u8; void test (void) { u8 = u8 + u8; u8 = u8 - u8; } into test: movzbl u8(%rip), %eax addb %al, u8(%rip) movzbl u8(%rip), %eax subb u8(%rip), %al movb %al, u8(%rip) ret Tested with Linux kernel 6.17.9 on Intel Core i7-1195G7. gcc/ PR target/122343 * common.opt: Add -ffuse-ops-with-volatile-access. * common.opt.urls: Regenerated. * recog.cc (general_operand): Allow volatile memory reference if -ffuse-ops-with-volatile-access is enabled. * simplify-rtx.cc (simplify_binary_operation_1): Keep PLUS for 2 volatile memory references. * doc/invoke.texi: Document -ffuse-ops-with-volatile-access. gcc/testsuite/ PR target/122343 * gcc.target/i386/20040112-1.c: Add -fomit-frame-pointer and use check-function-bodies to check for loop. * gcc.target/i386/avx-ne-convert-1.c: Compile with -fno-fuse-ops-with-volatile-access. * gcc.target/i386/avx10_2-bf16-1.c: Likewise. * gcc.target/i386/avx10_2-convert-1.c: Likewise. * gcc.target/i386/avx10_2-satcvt-1.c: Likewise. * gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c: Likewise. * gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c: Likewise. * gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c: Likewise. * gcc.target/i386/avx512bitalg-vpshufbitqmb.c: Likewise. * gcc.target/i386/avx512bw-vpcmpb-1.c: Likewise. * gcc.target/i386/avx512bw-vpcmpub-1.c: Likewise. * gcc.target/i386/avx512bw-vpcmpuw-1.c: Likewise. * gcc.target/i386/avx512bw-vpcmpw-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtps2qq-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtps2uqq-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtqq2pd-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtqq2ps-1.c: Likewise. * gcc.target/i386/avx512dq-vcvttps2qq-1.c: Likewise. * gcc.target/i386/avx512dq-vcvttps2uqq-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtuqq2pd-1.c: Likewise. * gcc.target/i386/avx512dq-vcvtuqq2ps-1.c: Likewise. * gcc.target/i386/avx512dq-vextractf32x8-1.c: Likewise. * gcc.target/i386/avx512dq-vextractf64x2-1.c: Likewise. * gcc.target/i386/avx512dq-vextracti64x2-1.c: Likewise. * gcc.target/i386/avx512dq-vfpclasspd-1.c: Likewise. * gcc.target/i386/avx512dq-vfpclassps-1.c: Likewise. * gcc.target/i386/avx512dq-vfpclasssd-1.c: Likewise. * gcc.target/i386/avx512dq-vfpclassss-1.c: Likewise. * gcc.target/i386/avx512dq-vpmullq-1.c: Likewise. * gcc.target/i386/avx512dq-vpmullq-3.c: Likewise. * gcc.target/i386/avx512f-pr100267-1.c: Likewise. * gcc.target/i386/avx512f-vcmppd-1.c: Likewise. * gcc.target/i386/avx512f-vcmpps-1.c: Likewise. * gcc.target/i386/avx512f-vcvtps2pd-1.c: Likewise. * gcc.target/i386/avx512f-vcvtsd2si-1.c: Likewise. * gcc.target/i386/avx512f-vcvtsd2si64-1.c: Likewise. * gcc.target/i386/avx512f-vcvtsd2usi-1.c: Likewise. * gcc.target/i386/avx512f-vcvtsd2usi64-1.c: Likewise. * gcc.target/i386/avx512f-vcvtsi2ss-1.c: Likewise. * gcc.target/i386/avx512f-vcvtss2si-1.c: Likewise. * gcc.target/i386/avx512f-vcvtss2si64-1.c: Likewise. * gcc.target/i386/avx512f-vcvtss2usi-1.c: Likewise. * gcc.target/i386/avx512f-vcvtss2usi64-1.c: Likewise. * gcc.target/i386/avx512f-vcvttsd2si-1.c: Likewise. * gcc.target/i386/avx512f-vcvttsd2si64-1.c: Likewise. * gcc.target/i386/avx512f-vcvttsd2usi-1.c: Likewise. * gcc.target/i386/avx512f-vcvttsd2usi64-1.c: Likewise. * gcc.target/i386/avx512f-vcvttss2si-1.c: Likewise. * gcc.target/i386/avx512f-vcvttss2si64-1.c: Likewise. * gcc.target/i386/avx512f-vcvttss2usi-1.c: Likewise. * gcc.target/i386/avx512f-vcvttss2usi64-1.c: Likewise. * gcc.target/i386/avx512f-vextractf32x4-1.c: Likewise. * gcc.target/i386/avx512f-vextractf64x4-1.c: Likewise. * gcc.target/i386/avx512f-vextracti64x4-1.c: Likewise. * gcc.target/i386/avx512f-vmovapd-1.c: Likewise. * gcc.target/i386/avx512f-vmovaps-1.c: Likewise. * gcc.target/i386/avx512f-vmovdqa64-1.c: Likewise. * gcc.target/i386/avx512f-vpandnq-1.c: Likewise. * gcc.target/i386/avx512f-vpbroadcastd-1.c: Likewise. * gcc.target/i386/avx512f-vpbroadcastq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpd-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpeqq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpequq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpged-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpgeq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpgeud-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpgeuq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpled-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpleq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpleud-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpleuq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpltd-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpltq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpltud-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpltuq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpneqd-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpneqq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpnequd-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpnequq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpq-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpud-1.c: Likewise. * gcc.target/i386/avx512f-vpcmpuq-1.c: Likewise. * gcc.target/i386/avx512f-vrndscalepd-1.c: Likewise. * gcc.target/i386/avx512f-vrndscaleps-1.c: Likewise. * gcc.target/i386/avx512fp16-complex-fma.c: Likewise. * gcc.target/i386/avx512fp16-vaddph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2dq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2pd-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2psx-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2qq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2udq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2uw-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtph2w-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtps2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2dq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2qq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2udq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2uw-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvttph2w-1a.c: Likewise. * gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfcmaddcph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfmaddcph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfpclassph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vfpclasssh-1a.c: Likewise. * gcc.target/i386/avx512fp16-vmulph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vrcpph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vrsqrtph-1a.c: Likewise. * gcc.target/i386/avx512fp16-vsqrtph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vaddph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vfpclassph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vmulph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vrcpph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c: Likewise. * gcc.target/i386/avx512fp16vl-vsqrtph-1a.c: Likewise. * gcc.target/i386/avx512vl-pr100267-1.c: Likewise. * gcc.target/i386/avx512vl-vcmppd-1.c: Likewise. * gcc.target/i386/avx512vl-vcmpps-1.c: Likewise. * gcc.target/i386/avx512vl-vcvtpd2ps-1.c: Likewise. * gcc.target/i386/avx512vl-vcvtpd2udq-1.c: Likewise. * gcc.target/i386/avx512vl-vcvttpd2udq-1.c: Likewise. * gcc.target/i386/avx512vl-vcvttps2udq-1.c: Likewise. * gcc.target/i386/avx512vl-vextractf32x4-1.c: Likewise. * gcc.target/i386/avx512vl-vmovapd-1.c: Likewise. * gcc.target/i386/avx512vl-vmovaps-1.c: Likewise. * gcc.target/i386/avx512vl-vmovdqa64-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpd-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpeqq-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpequq-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpq-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpud-1.c: Likewise. * gcc.target/i386/avx512vl-vpcmpuq-1.c: Likewise. * gcc.target/i386/pr122343-1a.c: New test. * gcc.target/i386/pr122343-1b.c: Likewise. * gcc.target/i386/pr122343-2a.c: Likewise. * gcc.target/i386/pr122343-2b.c: Likewise. * gcc.target/i386/pr122343-3.c: Likewise. * gcc.target/i386/pr122343-4a.c: Likewise. * gcc.target/i386/pr122343-4b.c: Likewise. * gcc.target/i386/pr122343-5a.c: Likewise. * gcc.target/i386/pr122343-5b.c: Likewise. * gcc.target/i386/pr122343-6a.c: Likewise. * gcc.target/i386/pr122343-6b.c: Likewise. * gcc.target/i386/pr122343-7.c: Likewise. Signed-off-by: H.J. Lu --- gcc/common.opt | 4 ++ gcc/common.opt.urls | 3 ++ gcc/doc/invoke.texi | 11 +++++- gcc/recog.cc | 6 ++- gcc/simplify-rtx.cc | 4 +- gcc/testsuite/gcc.target/i386/20040112-1.c | 19 +++++++++- .../gcc.target/i386/avx-ne-convert-1.c | 2 +- .../gcc.target/i386/avx10_2-bf16-1.c | 2 +- .../gcc.target/i386/avx10_2-convert-1.c | 2 +- .../gcc.target/i386/avx10_2-satcvt-1.c | 2 +- .../i386/avx512bf16-vcvtneps2bf16-1.c | 2 +- .../i386/avx512bf16vl-vcvtneps2bf16-1a.c | 2 +- .../i386/avx512bf16vl-vcvtneps2bf16-1b.c | 2 +- .../i386/avx512bitalg-vpshufbitqmb.c | 2 +- .../gcc.target/i386/avx512bw-vpcmpb-1.c | 2 +- .../gcc.target/i386/avx512bw-vpcmpub-1.c | 2 +- .../gcc.target/i386/avx512bw-vpcmpuw-1.c | 2 +- .../gcc.target/i386/avx512bw-vpcmpw-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtps2qq-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtps2uqq-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtqq2pd-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtqq2ps-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvttps2qq-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvttps2uqq-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtuqq2pd-1.c | 2 +- .../gcc.target/i386/avx512dq-vcvtuqq2ps-1.c | 2 +- .../i386/avx512dq-vextractf32x8-1.c | 2 +- .../i386/avx512dq-vextractf64x2-1.c | 2 +- .../i386/avx512dq-vextracti64x2-1.c | 2 +- .../gcc.target/i386/avx512dq-vfpclasspd-1.c | 2 +- .../gcc.target/i386/avx512dq-vfpclassps-1.c | 2 +- .../gcc.target/i386/avx512dq-vfpclasssd-1.c | 2 +- .../gcc.target/i386/avx512dq-vfpclassss-1.c | 2 +- .../gcc.target/i386/avx512dq-vpmullq-1.c | 2 +- .../gcc.target/i386/avx512dq-vpmullq-3.c | 2 +- .../gcc.target/i386/avx512f-pr100267-1.c | 2 +- .../gcc.target/i386/avx512f-vcmppd-1.c | 2 +- .../gcc.target/i386/avx512f-vcmpps-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtps2pd-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtsd2si-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtsd2si64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtsd2usi-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtsd2usi64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtsi2ss-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtss2si-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtss2si64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtss2usi-1.c | 2 +- .../gcc.target/i386/avx512f-vcvtss2usi64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttsd2si-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttsd2si64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttsd2usi-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttsd2usi64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttss2si-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttss2si64-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttss2usi-1.c | 2 +- .../gcc.target/i386/avx512f-vcvttss2usi64-1.c | 2 +- .../gcc.target/i386/avx512f-vextractf32x4-1.c | 2 +- .../gcc.target/i386/avx512f-vextractf64x4-1.c | 2 +- .../gcc.target/i386/avx512f-vextracti64x4-1.c | 2 +- .../gcc.target/i386/avx512f-vmovapd-1.c | 2 +- .../gcc.target/i386/avx512f-vmovaps-1.c | 2 +- .../gcc.target/i386/avx512f-vmovdqa64-1.c | 2 +- .../gcc.target/i386/avx512f-vpandnq-1.c | 2 +- .../gcc.target/i386/avx512f-vpbroadcastd-1.c | 2 +- .../gcc.target/i386/avx512f-vpbroadcastq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpd-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpeqq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpequq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpged-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpgeq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpgeud-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpgeuq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpled-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpleq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpleud-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpleuq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpltd-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpltq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpltud-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpltuq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpneqd-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpneqq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpnequd-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpnequq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpq-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpud-1.c | 2 +- .../gcc.target/i386/avx512f-vpcmpuq-1.c | 2 +- .../gcc.target/i386/avx512f-vrndscalepd-1.c | 2 +- .../gcc.target/i386/avx512f-vrndscaleps-1.c | 2 +- .../gcc.target/i386/avx512fp16-complex-fma.c | 2 +- .../gcc.target/i386/avx512fp16-vaddph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtph2dq-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtph2pd-1a.c | 2 +- .../i386/avx512fp16-vcvtph2psx-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtph2qq-1a.c | 2 +- .../i386/avx512fp16-vcvtph2udq-1a.c | 2 +- .../i386/avx512fp16-vcvtph2uqq-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtph2uw-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtph2w-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtps2ph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c | 2 +- .../i386/avx512fp16-vcvttph2dq-1a.c | 2 +- .../i386/avx512fp16-vcvttph2qq-1a.c | 2 +- .../i386/avx512fp16-vcvttph2udq-1a.c | 2 +- .../i386/avx512fp16-vcvttph2uqq-1a.c | 2 +- .../i386/avx512fp16-vcvttph2uw-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vcvttph2w-1a.c | 2 +- .../i386/avx512fp16-vcvtuqq2ph-1a.c | 2 +- .../i386/avx512fp16-vfcmaddcph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vfcmulcph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vfmaddcph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vfmulcph-1a.c | 2 +- .../i386/avx512fp16-vfpclassph-1a.c | 2 +- .../i386/avx512fp16-vfpclasssh-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vmulph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vrcpph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vrsqrtph-1a.c | 2 +- .../gcc.target/i386/avx512fp16-vsqrtph-1a.c | 2 +- .../gcc.target/i386/avx512fp16vl-vaddph-1a.c | 2 +- .../i386/avx512fp16vl-vcvtpd2ph-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2dq-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2psx-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2qq-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2udq-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2uqq-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2uw-1a.c | 2 +- .../i386/avx512fp16vl-vcvtph2w-1a.c | 2 +- .../i386/avx512fp16vl-vcvtps2ph-1a.c | 2 +- .../i386/avx512fp16vl-vcvtqq2ph-1a.c | 2 +- .../i386/avx512fp16vl-vcvttph2dq-1a.c | 2 +- .../i386/avx512fp16vl-vcvttph2udq-1a.c | 2 +- .../i386/avx512fp16vl-vcvttph2uw-1a.c | 2 +- .../i386/avx512fp16vl-vcvttph2w-1a.c | 2 +- .../i386/avx512fp16vl-vcvtuqq2ph-1a.c | 2 +- .../i386/avx512fp16vl-vfcmaddcph-1a.c | 2 +- .../i386/avx512fp16vl-vfcmulcph-1a.c | 2 +- .../i386/avx512fp16vl-vfmaddcph-1a.c | 2 +- .../i386/avx512fp16vl-vfmulcph-1a.c | 2 +- .../i386/avx512fp16vl-vfpclassph-1a.c | 2 +- .../gcc.target/i386/avx512fp16vl-vmulph-1a.c | 2 +- .../gcc.target/i386/avx512fp16vl-vrcpph-1a.c | 2 +- .../i386/avx512fp16vl-vrsqrtph-1a.c | 2 +- .../gcc.target/i386/avx512fp16vl-vsqrtph-1a.c | 2 +- .../gcc.target/i386/avx512vl-pr100267-1.c | 2 +- .../gcc.target/i386/avx512vl-vcmppd-1.c | 2 +- .../gcc.target/i386/avx512vl-vcmpps-1.c | 2 +- .../gcc.target/i386/avx512vl-vcvtpd2ps-1.c | 2 +- .../gcc.target/i386/avx512vl-vcvtpd2udq-1.c | 2 +- .../gcc.target/i386/avx512vl-vcvttpd2udq-1.c | 2 +- .../gcc.target/i386/avx512vl-vcvttps2udq-1.c | 2 +- .../i386/avx512vl-vextractf32x4-1.c | 2 +- .../gcc.target/i386/avx512vl-vmovapd-1.c | 2 +- .../gcc.target/i386/avx512vl-vmovaps-1.c | 2 +- .../gcc.target/i386/avx512vl-vmovdqa64-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpd-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpeqq-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpequq-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpq-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpud-1.c | 2 +- .../gcc.target/i386/avx512vl-vpcmpuq-1.c | 2 +- gcc/testsuite/gcc.target/i386/pr122343-1a.c | 25 +++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-1b.c | 19 ++++++++++ gcc/testsuite/gcc.target/i386/pr122343-2a.c | 23 ++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-2b.c | 18 +++++++++ gcc/testsuite/gcc.target/i386/pr122343-3.c | 22 +++++++++++ gcc/testsuite/gcc.target/i386/pr122343-4a.c | 33 +++++++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-4b.c | 24 ++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-5a.c | 25 +++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-5b.c | 20 ++++++++++ gcc/testsuite/gcc.target/i386/pr122343-6a.c | 37 +++++++++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-6b.c | 27 ++++++++++++++ gcc/testsuite/gcc.target/i386/pr122343-7.c | 27 ++++++++++++++ 173 files changed, 497 insertions(+), 160 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-1a.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-1b.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-2a.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-2b.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-3.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-4a.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-4b.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-5a.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-5b.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-6a.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-6b.c create mode 100644 gcc/testsuite/gcc.target/i386/pr122343-7.c diff --git a/gcc/common.opt b/gcc/common.opt index 0a3d65d4d4a8..bd76dcdab6d1 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1828,6 +1828,10 @@ ffunction-sections Common Var(flag_function_sections) Place each function into its own section. +ffuse-ops-with-volatile-access +Target Var(flag_fuse_ops_with_volatile_access) Init(1) +Allow limited optimization of operations with volatile memory access. + fgcse Common Var(flag_gcse) Optimization Perform global common subexpression elimination. diff --git a/gcc/common.opt.urls b/gcc/common.opt.urls index cade6079f578..f1109d7b3dc0 100644 --- a/gcc/common.opt.urls +++ b/gcc/common.opt.urls @@ -782,6 +782,9 @@ UrlSuffix(gcc/Optimize-Options.html#index-ffunction-cse) ffunction-sections UrlSuffix(gcc/Optimize-Options.html#index-ffunction-sections) +ffuse-ops-with-volatile-access +UrlSuffix(gcc/Optimize-Options.html#index-ffuse-ops-with-volatile-access) + fgcse UrlSuffix(gcc/Optimize-Options.html#index-fgcse) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index a6d2b54cc7f6..ac36fda0f2b3 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -621,7 +621,7 @@ Objective-C and Objective-C++ Dialects}. -ffast-math -ffat-lto-objects -ffinite-loops -ffinite-math-only -ffloat-store -fforward-propagate -ffp-contract=@var{style} -ffp-int-builtin-inexact --ffunction-sections +-ffunction-sections -ffuse-ops-with-volatile-access -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity -fgcse-sm -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining @@ -13790,6 +13790,15 @@ performed when this option is not used. The default is @option{-ffunction-cse} +@opindex ffuse-ops-with-volatile-access +@opindex fno-fuse-ops-with-volatile-access +@item -ffuse-ops-with-volatile-access +Allow limited optimization of operations with volatile memory access +when doing so does not change the semantics outlined in +@xref{Volatiles,,When is a Volatile Object Accessed?}. + +The default is @option{-ffuse-ops-with-volatile-access} + @opindex fno-zero-initialized-in-bss @opindex fzero-initialized-in-bss @item -fno-zero-initialized-in-bss diff --git a/gcc/recog.cc b/gcc/recog.cc index 67d7fa630692..bfa10df9e4bf 100644 --- a/gcc/recog.cc +++ b/gcc/recog.cc @@ -1596,7 +1596,11 @@ general_operand (rtx op, machine_mode mode) { rtx y = XEXP (op, 0); - if (! volatile_ok && MEM_VOLATILE_P (op)) + /* If -ffuse-ops-with-volatile-access is enabled, allow volatile + memory reference. */ + if (!flag_fuse_ops_with_volatile_access + && !volatile_ok + && MEM_VOLATILE_P (op)) return false; /* Use the mem's mode, since it will be reloaded thus. LRA can diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 3aaabdc9b055..8016e02e9253 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -3189,7 +3189,9 @@ simplify_context::simplify_binary_operation_1 (rtx_code code, rhs = XEXP (rhs, 0); } - if (rtx_equal_p (lhs, rhs)) + /* Keep PLUS of 2 volatile memory references. */ + if (rtx_equal_p (lhs, rhs) + && (!MEM_P (lhs) || !MEM_VOLATILE_P (lhs))) { rtx orig = gen_rtx_PLUS (int_mode, op0, op1); rtx coeff; diff --git a/gcc/testsuite/gcc.target/i386/20040112-1.c b/gcc/testsuite/gcc.target/i386/20040112-1.c index 9dd0989c1014..ab53292ac7e8 100644 --- a/gcc/testsuite/gcc.target/i386/20040112-1.c +++ b/gcc/testsuite/gcc.target/i386/20040112-1.c @@ -1,6 +1,21 @@ /* { dg-do compile } */ -/* { dg-options "-O2" } */ -/* { dg-final { scan-assembler "testb" } } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**ftn: +**... +**.L[0-9]+: +** movb \$-24, \(%(e|r)(di|ax)\) +** cmpb \$0, \(%(e|r)(di|ax)\) +** jns .L[0-9]+ +** ret +** .cfi_endproc +**... +*/ + void ftn (char *sp) { diff --git a/gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c b/gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c index 27188a65fa95..d6b0e0906ab2 100644 --- a/gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c +++ b/gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavxneconvert -O2" } */ +/* { dg-options "-mavxneconvert -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vbcstnebf162ps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vbcstnebf162ps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vbcstnesh2ps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c index f5a29bf72c7c..1d390a16ef83 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-march=x86-64-v3 -mavx10.2 -O2" } */ +/* { dg-options "-march=x86-64-v3 -mavx10.2 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vaddbf16\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddbf16\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddbf16\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c index c5a2d6f4d2c1..2ba7a51d23d9 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-march=x86-64-v3 -mavx10.2 -O2" } */ +/* { dg-options "-march=x86-64-v3 -mavx10.2 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvt2ps2phx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvt2ps2phx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvt2ps2phx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c b/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c index 7b1c2477a161..9f3acb066d72 100644 --- a/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c +++ b/gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=x86-64-v3 -mavx10.2" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -march=x86-64-v3 -mavx10.2" } */ /* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2ibs\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c b/gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c index 99ba4ee57f7d..44ea7c6c9a5d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512bf16 -O2" } */ +/* { dg-options "-mavx512bf16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c b/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c index d3a9bdf8c347..70ec9ea6570b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512bf16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512bf16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c b/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c index e0687fa41a14..f418f3a3bbd8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c +++ b/gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512bf16 -mavx512vl -mavxneconvert -O2" } */ +/* { dg-options "-mavx512bf16 -mavx512vl -mavxneconvert -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "\{vex\} vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtneps2bf16y\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c b/gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c index 75fbef897326..fa901d3e0243 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c +++ b/gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512bitalg -mavx512vl -O2" } */ +/* { dg-options "-mavx512bitalg -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpshufbitqmb\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpshufbitqmb\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpshufbitqmb\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c index e84d766dc923..edc321004311 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512bw -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpb\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpb\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpb\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c index 6d8a442d79f7..eacce0e1febf 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512bw -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-times "(?:vpcmpub|vpcmpeqb)\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpub\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpub\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c index c0d84ded11b7..ef876e5d2f08 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512bw -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpuw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c index 111ce811e109..eec610304825 100644 --- a/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512bw -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c index b6ed96fca86e..5bccf40bffcd 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c index 33090a58b7a1..3fbd23d124d1 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c index 1d51abdb1178..95afa3e2f27a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c index d5d7bbc492a4..1147ccc8cedb 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c index e99bb3b7a5bc..065b406ea90d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c index 9b34e4314cab..1078b2068ea1 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c index 11b89102ce26..963f20690d29 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtuqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c index 0ae94c61c027..c70e6de8bcee 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtuqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c index b1e61b6ee2a1..6649ea54e53d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -O2" } */ +/* { dg-options "-mavx512dq -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextractf32x8\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x8\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x8\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c index c8cce51c016c..5a4fb1fece3f 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextractf64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c index d49b0c0c9168..3347e02576e8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextracti64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextracti64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextracti64x2\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+.{7}\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c index 932f103b3efb..3a0dac1fc86b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclasspdz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasspdy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasspdx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c index f826e89155ca..fe7394add1c7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclasspsz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasspsy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasspsx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c index fb5c1d570354..790c2d03437b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -O2" } */ +/* { dg-options "-mavx512dq -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclasssd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasssd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c index 4822441afa4c..e7102deaa7d8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -O2" } */ +/* { dg-options "-mavx512dq -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclassss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclassss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c index ad0de265d088..fded97985d9a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -mavx512vl -O2" } */ +/* { dg-options "-mavx512dq -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpmullq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpmullq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpmullq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c b/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c index 920087bc3d49..6ce106b21816 100644 --- a/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c +++ b/gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512dq -O2" } */ +/* { dg-options "-mavx512dq -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpmullq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpmullq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c b/gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c index 5eb6de531c21..40dd2073a379 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpexpandd\[ \\t\]+\[^\{\n\]*\\(\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpexpandd\[ \\t\]+\[^\{\n\(]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpexpandq\[ \\t\]+\[^\{\n\]*\\(\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c index 81251653d1ab..b13627f94872 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*\[^\}\]%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 9 } } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*\[^\}\]%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 9 } } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c index cd3d5c7a03d7..2996507e0594 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*\[^\}\]%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 9 } } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*\[^\}\]%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 9 } } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c index 05c1bc22cee6..eb51f563e712 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtps2pd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2pd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2pd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c index 402af5048f61..17a0fa192c35 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtsd2sil?\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtsd2sil?\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c index dad26e4b7296..20ebdae8f549 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtsd2siq\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtsd2siq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c index 5b2572f2e6e7..383e09d0dc93 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtsd2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtsd2usi\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c index a0c503d88d1f..36032cce3e55 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtsd2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtsd2usi\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c index 0b3f518e5666..8d83df3251a7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtsi2ssl\[ \\t\]+\[^%\n\]*%e\[^\{\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtsi2ssl\[ \\t\]+\[^%\n\]*%e\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c index e3f42238097a..158eb5909d35 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtss2sil?\[ \\t\]+\[^\n\]*\{rn-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtss2sil?\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c index 86ef95a64fdc..3ba17fddd289 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtss2siq\[ \\t\]+\[^\n\]*\{rz-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtss2siq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c index e17a191dd43b..807e14dd2554 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtss2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } }*/ /* { dg-final { scan-assembler-times "vcvtss2usi\[ \\t\]+\[^\n\]*\{rd-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c index a55e4115a2c4..195e9047f6b7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvtss2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtss2usi\[ \\t\]+\[^\n\]*\{ru-sae\}\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c index e7f23aa7e50a..6b19e8cca1f4 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttsd2sil?\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttsd2sil?\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c index dd06e381a969..d6c937f8b76c 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttsd2siq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttsd2siq\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c index 474acca5f18b..a4eab0292849 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttsd2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttsd2usi\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c index 5f68508d3529..8a5bf3495778 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttsd2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttsd2usi\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c index 859848201a40..be9de9b47077 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttss2sil?\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttss2sil?\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c index 85d5837b1f3f..03184f2cffa8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttss2siq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttss2siq\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c index a45b3eeb888c..11a907175d7a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttss2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttss2usi\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c index b8c3980af4f6..dc08170ccec2 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile { target { ! ia32 } } } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vcvttss2usi\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttss2usi\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+.{6}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c index 86b5ee767206..617de843a22c 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextractf32x4\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x4\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x4\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c index 125b0290c8b7..ce5cfe3e39c0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextractf64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c index fceffac05a19..8334647644af 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextracti64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextracti64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextracti64x4\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c index e869f70665aa..17bb0221d099 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*\\)\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c index a7635a3ebf25..d563839718b8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*\\)\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c index 1c372c4f92a6..fb44558c87f2 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*\\)\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c index 83aaca893557..e451988d4ce4 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpandnq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpandnq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpandnq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c index bd111b0b563c..7618605be653 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vpbroadcastd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c index 5da582cf17c2..1cbaeb59d038 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vpbroadcastq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c index 77276c146352..55376e3eaf84 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c index 595ba5527036..a560dbdfe96d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "(?:vpcmpeqq\[ \\t\]+|vpcmpq\[ \\t\]+\\\$0)\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpeqq\[ \\t\]+|vpcmpq\[ \\t\]+\\\$0)\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c index f3f35ec62ec3..3e00cc105e83 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c index bf7dda259c03..4b60bd4578f4 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c index 4be0ae463830..c5e4b467aa46 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c index 807c5bbac54e..9f346feda832 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c index 86a89e54dc3a..9fbb7a6792e0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c index ec1e582e6fb2..6ea73caf1151 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c index ae480dac8e92..a2ba07c9fb70 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c index c520c3647353..ea0ee4a1dc52 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c index 6b8de648ce60..7c4e87023a00 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c index cf82f1271215..ab0bef3acefe 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c index 0e369a781c5b..5ef7ff4ca4d5 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c index c28748a17134..f7f44a309b2f 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c index eb70a7c1ef1b..36d0d15bde92 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c index ffc48263d485..4c0013b9ecca 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c index 26dde19495d2..a2921f870896 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c index 3cdd173f796e..821b3c16241d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c index b93daf768429..bb3963646a6e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c index 445e59c963d6..1a32cb8999cb 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c index be0a8feb0254..9a8393112a38 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "(?:vpcmpud|vpcmpeqd)\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c index fa6878aca14e..2dd49069961a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512f" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c index f4467a5a6631..7db4e58b5d47 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrndscalepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 3 } } */ /* { dg-final { scan-assembler-times "vrndscalepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 3 } } */ /* { dg-final { scan-assembler-times "vrndscalepd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c b/gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c index cbb469c5dedf..946fb50c749e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -O2" } */ +/* { dg-options "-mavx512f -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrndscaleps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 3 } } */ /* { dg-final { scan-assembler-times "vrndscaleps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 3 } } */ /* { dg-final { scan-assembler-times "vrndscaleps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c b/gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c index 2dfd369e7852..7d680437c4e0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2 -Ofast" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access -Ofast" } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-not "vaddph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)"} } */ /* { dg-final { scan-assembler-not "vfmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)"} } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c index 0590c34cebf1..871eea619fd7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c index 8f74405873ff..165109e53856 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtpd2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtpd2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c index 31a56393f0e9..8beb94cf4f2e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c index b7bb3b7840f4..9e6ab27d2220 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2pd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c index c79549f67c58..dee88a1cc587 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c index d80ee611f3c7..78fab6883612 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c index b4a833afdab5..9946fa36df70 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c index b4087798be97..06fa886aebaf 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c index 262274526b16..82a4a07c7225 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c index bcaa7446d345..7280628bd82a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c index cb957f869205..841ef54667a7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtps2phx\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtps2phx\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2phx\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c index 4e8515e9a3d3..588734e60401 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c index 0e44aaf1bb5b..fb23358ed338 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c index 124169467ee4..53db6b894ae0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c index 0fd60f56777b..a08e7b1de785 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c index 04fee2936c8e..c24608805ab3 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c index b31af8441a96..5f0f0644d626 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c index a918594d0d80..52cea588b63f 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c index a234bb504821..5f859e767a35 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtuqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2phz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c index 851561ad4165..90b7072a6088 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c index e228393b5f07..94ec85af893b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c index dfcc6e5f93cf..c1f02bbf21c6 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c index 4135cd25070c..f3863f9c6801 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c index a97dddf6110a..db41dbf7e511 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclassphz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclassphz\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c index 7a31fd8b47d9..66f5e96b358d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclasssh-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclasssh\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclasssh\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[0-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c index 1088e255786f..6419510efa15 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c index 6a5c642d7d8d..ca6c76289140 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c index c9671e8ed0ab..f1a313a46ace 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c index 497b5bab1db1..598543abb0f8 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -O2" } */ +/* { dg-options "-mavx512fp16 -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\[^\{\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c index 354d897dd9e2..8c88c729cad0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vaddph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c index 57604a913345..a997979445dd 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtpd2phy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c index df653b0b2c7d..c08164c27574 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2dq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c index e8c4c8c70d7c..9ed630dff9d2 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2psx\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c index ddc6f2a702e0..672d0336192b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2qq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c index d07d76647a76..c800d3b1126e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2udq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c index 26dbf227d814..ad72cd7c177d 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uqq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c index 0f9fd27881c1..beba83c89237 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2uw\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c index 8dee4ee25d0c..e538020ec26a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtph2w\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c index a89f8c4fe871..c31285ffabf7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtps2phxy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2phxy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtps2phxy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c index 8e42a4b29f70..29afa7b0013e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtqq2phy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtqq2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c index b4c084020ac6..2ba959f81479 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2dq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c index 60f43189d614..09c1270a28d1 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2udq\[ \\t\]+%xmm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c index eafa31a786b9..75b0cb1c1692 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2uw\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c index 7476d3c1160f..7992656b2b92 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttph2w\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c index a3ee951d4c5e..6bcd6b3213f2 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtuqq2phy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtuqq2phy\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c index 93edb92984ec..dceda628af43 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmaddcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c index 370f9ee76dec..f71c3db3ee4b 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512f -mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfcmulcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c index 7dfbb3e1e198..c4cbcf55fc33 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmaddcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c index dce9088b748d..f5edd1a600b4 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512f -mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vfmulcph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c index 897a3c836929..50f6a02be440 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vfpclassphy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclassphx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vfpclassphy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c index 26663c5ca8de..8e7d3b35abfe 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmulph\[ \\t\]+%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c index 5894dbc679f3..b0e7b0a40d86 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vrcpph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c index a5edc176b630..5aeddd9fcc47 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vrsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c index 4acb137e6b8a..bacca0ae19ea 100644 --- a/gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c +++ b/gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512fp16 -mavx512vl -O2" } */ +/* { dg-options "-mavx512fp16 -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 2 } } */ /* { dg-final { scan-assembler-times "vsqrtph\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[0-9\]\}\{z\}\[^\n\r]*(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c index 9ffd381f6c43..6829ce036f1a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512f -mavx512vl -O2" } */ +/* { dg-options "-mavx512f -mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vpexpandd\[ \\t\]+\[^\{\n\]*\\(\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpexpandd\[ \\t\]+\[^\{\n\(]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpexpandq\[ \\t\]+\[^\{\n\]*\\(\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c index 1911f0131366..072a11e66a3a 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcmppd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c index 5550c3505f0a..fa37615074fc 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcmpps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c index b0cd6e4f1a59..d252cb9858d5 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vcvtpd2psy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2psy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2psx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c index 465a819a69d0..7e2d0b9c6187 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvtpd2udqy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2udqx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvtpd2udqy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c index cc7a2d5f420b..5b4e930930fa 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttpd2udqy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttpd2udqx\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttpd2udqy\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c index 652f18a5fb54..7650a4d5d9c0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vcvttps2udq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2udq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vcvttps2udq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c index 26313f44062f..2e515f494ff7 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vextractf(?:128|32x4)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x4\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vextractf32x4\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c index 89c3ebefe35b..2b2484af75f9 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovapd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c index 2196ebb55d90..eb2873c8d0b1 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovaps\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c index d20b4a7b9973..87eb5c338dae 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vmovdqa64\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c index 788e9da7841b..9006a4a3ab28 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c index a798d062953c..38b556d90ebc 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "(?:vpcmpeqq\[ \\t\]+|vpcmpq\[ \\t\]+\\\$0)\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpeqq\[ \\t\]+|vpcmpq\[ \\t\]+\\\$0)\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpeqq\[ \\t\]+|vpcmpq\[ \\t\]+\\\$0)\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c index 736763f121e7..780cda493a9e 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mavx512vl -O2" } */ +/* { dg-options "-mavx512vl -O2 -fno-fuse-ops-with-volatile-access" } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c index cb3156c47370..eeabe2b08f57 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c index ba1a7e2977bf..dcf3094e2823 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpud\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c index f93fca2b6551..43cae5f6f807 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -fno-fuse-ops-with-volatile-access -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "vpcmpuq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n^k\]*%k\[0-7\]\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */ /* { dg-final { scan-assembler-times "(?:vpcmpuq|vpcmpeqq)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n^k\]*%k\[0-7\](?:\n|\[ \\t\]+#)" 1 } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr122343-1a.c b/gcc/testsuite/gcc.target/i386/pr122343-1a.c new file mode 100644 index 000000000000..7076d8811747 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-1a.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** imull \$123, %e(di|ax), %eax +** addl bar(|\(%rip\)), %eax +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar; + +int +foo (int z) +{ + z *= 123; + return bar + z; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-1b.c b/gcc/testsuite/gcc.target/i386/pr122343-1b.c new file mode 100644 index 000000000000..989d3b23a78f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-1b.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** imull \$123, %e(di|ax), %eax +** movl bar(|\(%rip\)), %edx +** addl %edx, %eax +** ret +** .cfi_endproc +**... +*/ + +#include "pr122343-1a.c" diff --git a/gcc/testsuite/gcc.target/i386/pr122343-2a.c b/gcc/testsuite/gcc.target/i386/pr122343-2a.c new file mode 100644 index 000000000000..f7ee02149ce6 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-2a.c @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar1(|\(%rip\)), %eax +** addl bar2(|\(%rip\)), %eax +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar1, bar2; + +int +foo (void) +{ + return bar1 + bar2; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-2b.c b/gcc/testsuite/gcc.target/i386/pr122343-2b.c new file mode 100644 index 000000000000..d4a1151a5862 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-2b.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar1(|\(%rip\)), %eax +** movl bar2(|\(%rip\)), %edx +** addl %edx, %eax +** ret +** .cfi_endproc +**... +*/ + +#include "pr122343-2a.c" diff --git a/gcc/testsuite/gcc.target/i386/pr122343-3.c b/gcc/testsuite/gcc.target/i386/pr122343-3.c new file mode 100644 index 000000000000..335f777d2a9a --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-3.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** addl \$123, bar(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar; + +void +foo (void) +{ + bar += 123; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-4a.c b/gcc/testsuite/gcc.target/i386/pr122343-4a.c new file mode 100644 index 000000000000..3ae07a27cf1c --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-4a.c @@ -0,0 +1,33 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar(|\(%rip\)), %eax +** movl bar(|\(%rip\)), %eax +**... +** barrier +**... +** addl bar(|\(%rip\)), %eax +** subl bar(|\(%rip\)), %eax +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar; + +int +foo (void) +{ + int h = bar; + int r = bar; + asm volatile ("barrier" ::: "memory"); + int p = bar; + p = p + r; + return p - bar; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-4b.c b/gcc/testsuite/gcc.target/i386/pr122343-4b.c new file mode 100644 index 000000000000..31a990eb3630 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-4b.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar(|\(%rip\)), %eax +** movl bar(|\(%rip\)), %eax +**... +** barrier +**... +** movl bar(|\(%rip\)), %ecx +** movl bar(|\(%rip\)), %edx +** addl %ecx, %eax +** subl %edx, %eax +** ret +** .cfi_endproc +**... +*/ + +#include "pr122343-4a.c" diff --git a/gcc/testsuite/gcc.target/i386/pr122343-5a.c b/gcc/testsuite/gcc.target/i386/pr122343-5a.c new file mode 100644 index 000000000000..3d133b671577 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-5a.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** imull \$123, %e(di|ax), %e(di|ax) +** addl %e(di|ax), bar(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar; + +void +foo (int z) +{ + z *= 123; + bar += z; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-5b.c b/gcc/testsuite/gcc.target/i386/pr122343-5b.c new file mode 100644 index 000000000000..5f64496d6f45 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-5b.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** imull \$123, %e(di|ax), %e(di|ax) +** movl bar(|\(%rip\)), %e(dx|ax) +** addl %e(dx|ax), %e(di|ax) +** movl %e(di|ax), bar(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +#include "pr122343-5a.c" diff --git a/gcc/testsuite/gcc.target/i386/pr122343-6a.c b/gcc/testsuite/gcc.target/i386/pr122343-6a.c new file mode 100644 index 000000000000..940182644c7e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-6a.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target { *-*-* } } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar(|\(%rip\)), %eax +** movl bar(|\(%rip\)), %eax +** imull \$123, %eax, %edx +** movl %edx, bar(|\(%rip\)) +**... +** barrier +**... +** movl bar(|\(%rip\)), %edx +** addl %edx, %eax +** subl %eax, bar(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +extern volatile int bar; + +void +foo (void) +{ + int h = bar; + int r = bar; + bar = r * 123; + asm volatile ("barrier" ::: "memory"); + int p = bar; + p = p + r; + bar -= p; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122343-6b.c b/gcc/testsuite/gcc.target/i386/pr122343-6b.c new file mode 100644 index 000000000000..f741f5ca98c7 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-6b.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**foo: +**.LFB0: +** .cfi_startproc +** movl bar(|\(%rip\)), %eax +** movl bar(|\(%rip\)), %eax +** imull \$123, %eax, %edx +** movl %edx, bar(|\(%rip\)) +**... +** barrier +**... +** movl bar(|\(%rip\)), %ecx +** movl bar(|\(%rip\)), %edx +** addl %ecx, %eax +** subl %eax, %edx +** movl %edx, bar(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +#include "pr122343-6a.c" diff --git a/gcc/testsuite/gcc.target/i386/pr122343-7.c b/gcc/testsuite/gcc.target/i386/pr122343-7.c new file mode 100644 index 000000000000..0e4edd1e5e71 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122343-7.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fomit-frame-pointer" } */ +/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */ +/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } */ + +/* +**test: +**.LFB0: +** .cfi_startproc +** movzbl u8(|\(%rip\)), %eax +** addb %al, u8(|\(%rip\)) +** movzbl u8(|\(%rip\)), %eax +** subb u8(|\(%rip\)), %al +** movb %al, u8(|\(%rip\)) +** ret +** .cfi_endproc +**... +*/ + +extern volatile unsigned char u8; + +void +test (void) +{ + u8 = u8 + u8; + u8 = u8 - u8; +} -- 2.47.3