From: Stefan Schulze Frielinghaus Date: Thu, 9 Jul 2026 07:28:12 +0000 (+0200) Subject: s390: Remove -m31 support X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=035f177a1eab310ca2f2a1996b7c000ff70514af;p=thirdparty%2Fgcc.git s390: Remove -m31 support This patch removes -m31 support and as a consequence -mesa support. Using the respective command line options result in errors whereas -m64 and -mzarch are still accepted for the sake of backwards compatibility but do not have any additional effect anymore since those are the defaults and only options, now. Since a 64-bit GAS defaults to -m64, do not explicitly specify -m64 -mzarch anymore. ChangeLog: * configure: Regenerate. * configure.ac: Remove deprecation warning for -m31. contrib/ChangeLog: * compare-all-tests: Remove opts -m31 and so on. * config-list.mk: Remove s390-linux-gnu. gcc/ChangeLog: * config.gcc: Remove target s390-*. Don't accept --with-mode=esa anymore. * config.host: Remove target s390-*. * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Remove definition for s390. * config/s390/2827.md: Remove scheduling information for mnemonics which are only used by -m31 but not by -m64. * config/s390/2964.md: Ditto. * config/s390/3906.md: Ditto. * config/s390/3931.md: Ditto. * config/s390/8561.md: Ditto. * config/s390/9175.md: Ditto. * config/s390/constraints.md (ZL): Remove TARGET_64BIT test. * config/s390/driver-native.cc (s390_host_detect_local_cpu): Remove handling for -mesa/-mzarch. * config/s390/htmxlintrin.h (__TM_failure_address): Remove -m31 part. * config/s390/linux.h: Remove -m31 parts. * config/s390/predicates.md: Ditto. * config/s390/s390-builtins.def: Rename RTL expander name for s390_vsce[fg]. * config/s390/s390-c.cc (s390_cpu_cpp_builtins): Remove TARGET_{64BIT,ZARCH} tests. * config/s390/s390-d.cc (s390_d_target_versions): Remove TARGET_64BIT test. * config/s390/s390.cc: Remove -m31 parts. In particular, there is no need to distinguish between 64-bit registers in ABI contexts anymore which is why UNITS_PER_WORD and UNITS_PER_LONG always equal, now. Hence, replace UNITS_PER_LONG by UNITS_PER_WORD. * config/s390/s390.h: Ditto. * config/s390/s390.md: Ditto. Mode iterator GPR is replaced by DSI. Likewise, DGPR by new mode iterator TDSI. Remove mode iterators P, DW, W because they are singletons, now. * config/s390/s390.opt: Keep -m64 and -mzarch for backwards compatibility. Mark -m31 and -mesa as undocumented. * config/s390/s390.opt.urls: Regenerate. * config/s390/t-linux64: Remove -m31 parts. * config/s390/tpf.h (POINTERS_EXTEND_UNSIGNED): This is only required for TPF which is why it is moved from s390.h here. (TARGET_DEFAULT): Remove MASK_64BIT and MASK_ZARCH. * config/s390/vector.md: Remove -m31 parts. * config/s390/vx-builtins.md (vec_scatter_element_SI): There is no need for multiplexing different address sizes for vec_scatter_element anymore. (vec_scatter_element): Ditto. * configure: Regenerate. * configure.ac: Remove target s390-*. * doc/install.texi: Remove mentions of s390 without also referring to s390x. * doc/invoke.texi: Remove options -m31 and -mesa. Document that -m64 and -mzarch are the defaults, now, and that they don't have any additional effect when explicitly specified. * config/s390/s390x.h: Removed. libgcc/ChangeLog: * config.host: Remove target s390-*. Remove -m31 part. * config/s390/libgcc-glibc.ver: Remove -m31 part. * config/s390/morestack.S: Ditto. * config/s390/sfp-machine.h: Ditto. * configure: Regenerate. * configure.ac: Remove target s390-*. * generic-morestack.c: Remove -m31 part. * config/s390/32/_fixdfdi.c: Removed. * config/s390/32/_fixsfdi.c: Removed. * config/s390/32/_fixtfdi.c: Removed. * config/s390/32/_fixunsdfdi.c: Removed. * config/s390/32/_fixunssfdi.c: Removed. * config/s390/32/_fixunstfdi.c: Removed. * config/s390/32/t-floattodi: Removed. libgm2/ChangeLog: * configure.host: Remove s390 host part; keep s390x. libitm/ChangeLog: * config/s390/sjlj.S: Remove -m31 part. libstdc++-v3/ChangeLog: * configure.host: Remove s390 host part; keep s390x. gcc/testsuite/ChangeLog: * gcc.dg/asm-hard-reg-error-3.c: Remove target s390-*. * gcc.dg/builtin-bswap-8.c: Remove target s390-*. * gcc.dg/ifcvt-4.c: Remove -m31 part. * gcc.dg/optimize-bswaphi-1.c: Ditto. * gcc.dg/optimize-bswapsi-3.c: Ditto. * gcc.dg/optimize-bswapsi-4.c: Ditto. * gcc.dg/optimize-bswapsi-5.c: Ditto. * gcc.dg/optimize-bswapsi-6.c: Ditto. * gcc.dg/optimize-bswapsi-7.c: Ditto. * gcc.dg/pr120525.c: Ditto. * gcc.dg/tree-ssa/loop-1.c: Ditto. * gcc.misc-tests/linkage.exp: Ditto. * gcc.target/s390/addsub-signed-overflow-1.c: Ditto. * gcc.target/s390/addsub-signed-overflow-2.c: Ditto. * gcc.target/s390/asm-constant-1.c: Ditto. * gcc.target/s390/call-z10-pic-nodatarel.c: Ditto. * gcc.target/s390/call-z10-pic.c: Ditto. * gcc.target/s390/call-z10.c: Ditto. * gcc.target/s390/call-z9-pic-nodatarel.c: Ditto. * gcc.target/s390/call-z9-pic.c: Ditto. * gcc.target/s390/call-z9.c: Ditto. * gcc.target/s390/fcall-saved.c: Ditto. * gcc.target/s390/global-array-element-pic2.c: Ditto. * gcc.target/s390/insv-1.c: Ditto. * gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c: Ditto. * gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c: Ditto. * gcc.target/s390/larl-1.c: Ditto. * gcc.target/s390/leaf-profile.c: Ditto. * gcc.target/s390/load-relative-check.c: Ditto. * gcc.target/s390/load-thread-pointer-once-2.c: Ditto. * gcc.target/s390/load-thread-pointer-once.c: Ditto. * gcc.target/s390/loc-1.c: Ditto. * gcc.target/s390/md/andc-splitter-2.c: Ditto. * gcc.target/s390/mrecord-mcount.c: Ditto. * gcc.target/s390/mul-signed-overflow-1.c: Ditto. * gcc.target/s390/mul-signed-overflow-2.c: Ditto. * gcc.target/s390/not.c: Ditto. * gcc.target/s390/pr42224.c: Guard as a TPF test. * gcc.target/s390/preserve-args-1.c: Remove -m31 part. * gcc.target/s390/preserve-args-3.c: Ditto. * gcc.target/s390/risbg-ll-1.c: Ditto. * gcc.target/s390/risbg-ll-2.c: Ditto. * gcc.target/s390/risbg-ll-3.c: Ditto. * gcc.target/s390/stack-protector-guard-tls-1.c: Ditto. * gcc.target/s390/target-attribute/tattr-12.c: Ditto. * gcc.target/s390/target-attribute/tattr-15.c: Ditto. * gcc.target/s390/tls.c: Ditto. * gcc.target/s390/uaddc-1.c: Ditto. * gcc.target/s390/uaddc-2.c: Ditto. * gcc.target/s390/uaddc-3.c: Ditto. * gcc.target/s390/usubc-1.c: Ditto. * gcc.target/s390/usubc-2.c: Ditto. * gcc.target/s390/usubc-3.c: Ditto. * gcc.target/s390/vector/pattern-avg-1.c: Ditto. * gcc.target/s390/vector/vec-abi-1.c: Ditto. * gcc.target/s390/vector/vec-abi-3.c: Ditto. * gcc.target/s390/vector/vec-abi-4.c: Ditto. * gcc.target/s390/vector/vec-abi-vararg-1.c: Ditto. * gcc.target/s390/vector/vec-scalar-cmp-1.c: Ditto. * gcc.target/s390/zero-scratch-regs-1.c: Ditto. * gcc.target/s390/zvector/vec-cmp-1.c: Ditto. * gcc.target/s390/20020926-1.c: Removed. * gcc.target/s390/20140327-1.c: Removed. * gcc.target/s390/dwarfregtable-1.c: Removed. * gcc.target/s390/dwarfregtable-2.c: Removed. * gcc.target/s390/fp2int1.c: Removed. * gcc.target/s390/mnop-mcount-m31-mzarch.c: Removed. * gcc.target/s390/pr102222.c: Removed. * gcc.target/s390/pr106355-2.c: Removed. * gcc.target/s390/pr106355-3.c: Removed. * gcc.target/s390/pr119873-5.c: Removed. * gcc.target/s390/pr61078.c: Removed. * gcc.target/s390/stack-clash-4.c: Removed. * gcc.target/s390/stack-clash-5.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-1.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-10.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-11.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-12.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-13.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-14.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-15.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-16.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-17.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-18.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-19.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-2.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-20.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-21.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-22.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-23.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-24.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-25.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-26.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-27.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-28.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-29.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-3.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-30.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-31.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-32.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-4.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-5.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-6.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-7.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-8.c: Removed. * gcc.target/s390/target-attribute/tattr-m31-9.c: Removed. --- diff --git a/configure b/configure index f5673e86341..79c324786e7 100755 --- a/configure +++ b/configure @@ -11752,22 +11752,6 @@ case "$target:$have_compiler:$host:$target:$enable_multilib" in ;; esac -# For s390, -m31 is deprecated. Emit a warning if --enable-multilib and -# --enable-obsolete are explicitly specified. If --enable-multilib is -# specified implicitly or --enable-obsolete is missing, error out. -case "$target:$enable_multilib:$enable_obsolete" in - s390*:yes:yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Support for -m31 is deprecated and will be removed." >&5 -$as_echo "$as_me: WARNING: Support for -m31 is deprecated and will be removed." >&2;} - ;; - s390*::*) - as_fn_error $? "Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway." "$LINENO" 5 - ;; - s390*:yes:*) - as_fn_error $? "Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway." "$LINENO" 5 - ;; -esac - # Default to --enable-multilib. if test x${enable_multilib} = x ; then target_configargs="--enable-multilib ${target_configargs}" diff --git a/configure.ac b/configure.ac index c953a5823c0..60887fb7fe0 100644 --- a/configure.ac +++ b/configure.ac @@ -3826,21 +3826,6 @@ case "$target:$have_compiler:$host:$target:$enable_multilib" in ;; esac -# For s390, -m31 is deprecated. Emit a warning if --enable-multilib and -# --enable-obsolete are explicitly specified. If --enable-multilib is -# specified implicitly or --enable-obsolete is missing, error out. -case "$target:$enable_multilib:$enable_obsolete" in - s390*:yes:yes) - AC_MSG_WARN([Support for -m31 is deprecated and will be removed.]) - ;; - s390*::*) - AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway.]) - ;; - s390*:yes:*) - AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway.]) - ;; -esac - # Default to --enable-multilib. if test x${enable_multilib} = x ; then target_configargs="--enable-multilib ${target_configargs}" diff --git a/contrib/compare-all-tests b/contrib/compare-all-tests index 561b2195c64..3280787ebb1 100644 --- a/contrib/compare-all-tests +++ b/contrib/compare-all-tests @@ -29,7 +29,6 @@ mips_opts='-msoft-float/-mgp32/-mips16 -mabi=32/-mfp32/-mgp32/-mips16 -mabi=o64/ mn10300_opts='-mam33 -mam33-2' pa_opts='-march=2.0 -march=1.0 -march=1.1' ppc_opts='-m32 -m64' -s390_opts='-m31 -m31/-mzarch -m64' sh_opts='-m3 -m3e -m4 -m4a -m4al -m4/-mieee -m1 -m1/-mno-cbranchdi -m2a -m2a/-mieee -m2e -m2e/-mieee' sparc_opts='-mcpu=v8/-m32 -mcpu=v9/-m32 -m64' diff --git a/contrib/config-list.mk b/contrib/config-list.mk index 69f5aed476d..c7f01da3bd2 100644 --- a/contrib/config-list.mk +++ b/contrib/config-list.mk @@ -94,7 +94,7 @@ LIST = \ pru-elf \ riscv32-unknown-linux-gnu riscv64-unknown-linux-gnu \ powerpc-ibm-aix7.1 powerpc-ibm-aix7.2 \ - rl78-elf rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \ + rl78-elf rx-elf s390x-linux-gnu s390x-ibm-tpf sh-elf \ shle-linux sh-netbsdelf sh-superh-elf \ sh-rtems sh-wrs-vxworks sparc-elf \ sparc-leon-elf sparc-rtems sparc-linux-gnu \ diff --git a/gcc/config.gcc b/gcc/config.gcc index 15f663cfb64..0477bf22c8a 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -276,15 +276,6 @@ case ${target} in fi;; esac -case ${target} in - s390-*) - if test "x$enable_obsolete" != xyes; then - echo "*** Configuration ${target} is deprecated and will be removed." >&2 - echo "*** Specify --enable-obsolete to build it anyway." >&2 - exit 1 - fi;; -esac - # Unsupported targets list. Do not put an entry in this list unless # it would otherwise be caught by a more permissive pattern. The list # should be in alphabetical order. @@ -310,6 +301,7 @@ case ${target}${target_min} in | pdp11-*-bsd \ | powerpc*-*-linux*paired* \ | powerpc*-*-*spe* \ + | s390-*-* \ | sparc-hal-solaris2* \ | spu*-*-* \ | thumb-*-* \ @@ -603,7 +595,7 @@ sparc*-*-*) d_target_objs="sparc-d.o" extra_headers="visintrin.h" ;; -s390*-*-*) +s390x-*-*) cpu_type=s390 d_target_objs="s390-d.o" extra_options="${extra_options} fused-madd.opt" @@ -3270,17 +3262,8 @@ rx-*-linux*) tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h" tmake_file="${tmake_file} rx/t-linux" ;; -s390-*-linux*) - tm_file="s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" - c_target_objs="${c_target_objs} s390-c.o" - cxx_target_objs="${cxx_target_objs} s390-c.o" - if test x$enable_targets = xall; then - tmake_file="${tmake_file} s390/t-linux64" - fi - tmake_file="${tmake_file} s390/t-s390" - ;; s390x-*-linux*) - tm_file="s390/s390x.h s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" + tm_file="s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" tm_p_file="linux-protos.h s390/s390-protos.h" c_target_objs="${c_target_objs} s390-c.o" cxx_target_objs="${cxx_target_objs} s390-c.o" @@ -3290,7 +3273,7 @@ s390x-*-linux*) tmake_file="${tmake_file} s390/t-linux64 s390/t-s390" ;; s390x-ibm-tpf*) - tm_file="s390/s390x.h s390/s390.h elfos.h glibc-stdint.h s390/tpf.h" + tm_file="s390/s390.h elfos.h glibc-stdint.h s390/tpf.h" tm_p_file=s390/s390-protos.h c_target_objs="${c_target_objs} s390-c.o" cxx_target_objs="${cxx_target_objs} s390-c.o" @@ -5883,7 +5866,7 @@ case "${target}" in fi ;; - s390*-*-*) + s390x-*-*) supported_defaults="arch mode tune" for which in arch tune; do @@ -5900,9 +5883,13 @@ case "${target}" in done case ${with_mode} in - "" | esa | zarch) + "" | zarch) # OK ;; + esa) + echo "ESA/390 mode is no longer supported." 1>&2 + exit 1 + ;; *) echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2 exit 1 diff --git a/gcc/config.host b/gcc/config.host index 8b809a8d5dd..c9be68acb82 100644 --- a/gcc/config.host +++ b/gcc/config.host @@ -173,9 +173,9 @@ case ${host} in ;; esac ;; - s390-*-* | s390x-*-*) + s390x-*-*) case ${target} in - s390-*-* | s390x-*-*) + s390x-*-*) host_extra_gcc_objs="driver-native.o" host_xmake_file="${host_xmake_file} s390/x-native" ;; diff --git a/gcc/config/host-linux.cc b/gcc/config/host-linux.cc index e3ccc06eb81..57b9b46ccc3 100644 --- a/gcc/config/host-linux.cc +++ b/gcc/config/host-linux.cc @@ -78,8 +78,6 @@ # define TRY_EMPTY_VM_SPACE 0x60000000 #elif defined(__s390x__) # define TRY_EMPTY_VM_SPACE 0x8000000000 -#elif defined(__s390__) -# define TRY_EMPTY_VM_SPACE 0x60000000 #elif defined(__sparc__) && defined(__LP64__) # define TRY_EMPTY_VM_SPACE 0x8000000000 #elif defined(__sparc__) diff --git a/gcc/config/s390/2827.md b/gcc/config/s390/2827.md index 6aa5f76eca8..d043ebd8600 100644 --- a/gcc/config/s390/2827.md +++ b/gcc/config/s390/2827.md @@ -19,11 +19,11 @@ ;; . (define_attr "zEC12_cracked" "" - (cond [(eq_attr "mnemonic" "cgdbr,clfxtr,cdgtr,celfbr,cxgtr,clfebr,clc,lngfr,cs,cfxbr,xc,clfdbr,basr,ex,cxlgtr,clfdtr,srdl,lpgfr,cdlgbr,cgxtr,cxlftr,nc,cxftr,cdfbr,clfxbr,cdftr,clgxbr,cgdtr,cxlgbr,mvc,clgdtr,cegbr,cfebr,cdlftr,sldl,cdlgtr,csg,chhsi,clgebr,cxgbr,cxfbr,cdlfbr,cgebr,lzxr,oc,cdgbr,brasl,cgxbr,cxlfbr,clgxtr,exrl,cfdbr,celgbr,clgdbr,lxr,cpsdr,lcgfr,bras,srda,cefbr") (const_int 1)] + (cond [(eq_attr "mnemonic" "cgdbr,clfxtr,cdgtr,celfbr,cxgtr,clfebr,clc,lngfr,cs,cfxbr,xc,clfdbr,basr,ex,cxlgtr,clfdtr,lpgfr,cdlgbr,cgxtr,cxlftr,nc,cxftr,cdfbr,clfxbr,cdftr,clgxbr,cgdtr,cxlgbr,mvc,clgdtr,cegbr,cfebr,cdlftr,cdlgtr,csg,chhsi,clgebr,cxgbr,cxfbr,cdlfbr,cgebr,lzxr,oc,cdgbr,brasl,cgxbr,cxlfbr,clgxtr,exrl,cfdbr,celgbr,clgdbr,lxr,cpsdr,lcgfr,bras,cefbr") (const_int 1)] (const_int 0))) (define_attr "zEC12_expanded" "" - (cond [(eq_attr "mnemonic" "dlr,dsgr,d,dsgf,stam,dsgfr,dlgr,dsg,cds,dr,stm,mvc,dl,cdsg,stmy,dlg,stmg,lam") (const_int 1)] + (cond [(eq_attr "mnemonic" "dsgr,dsgf,stam,dsgfr,dlgr,dsg,mvc,cdsg,dlg,stmg,lam") (const_int 1)] (const_int 0))) (define_attr "zEC12_endgroup" "" @@ -31,12 +31,12 @@ (const_int 0))) (define_attr "zEC12_groupalone" "" - (cond [(eq_attr "mnemonic" "lnxbr,madb,ltxtr,clc,axtr,msebr,slbgr,xc,alcr,lpxbr,slbr,maebr,mlg,mfy,lxdtr,maeb,lxeb,nc,mxtr,sxtr,dxbr,alc,msdbr,ltxbr,lxdb,madbr,lxdbr,lxebr,mvc,m,mseb,mlr,mlgr,slb,tcxb,msdb,sqxbr,alcgr,oc,flogr,alcg,mxbr,dxtr,axbr,mr,sxbr,slbg,ml,lcxbr,bcr_flush") (const_int 1)] + (cond [(eq_attr "mnemonic" "lnxbr,madb,ltxtr,clc,axtr,msebr,slbgr,xc,alcr,lpxbr,slbr,maebr,mlg,lxdtr,maeb,lxeb,nc,mxtr,sxtr,dxbr,alc,msdbr,ltxbr,lxdb,madbr,lxdbr,lxebr,mvc,mseb,mlgr,slb,tcxb,msdb,sqxbr,alcgr,oc,flogr,alcg,mxbr,dxtr,axbr,sxbr,slbg,lcxbr,bcr_flush") (const_int 1)] (const_int 0))) (define_insn_reservation "zEC12_simple_int" 0 (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "ltg,ogrk,lr,lghrl,x,asi,lhr,ar,lhrl,llgfr,clghrl,cgr,cli,agrk,ic,lrv,clg,cy,cghi,sy,clgfr,al,tm,lang,lghr,laa,ark,lh,or,icy,xi,n,llihl,afi,cs,nrk,sth,lgr,l,lcr,stey,xg,crt,slgfr,ny,ld,j,llihh,slgr,clfhsi,slg,lb,lgrl,lrl,llihf,llcr,laxg,mvghi,rllg,xrk,laag,alhsik,algfi,algr,aly,agfi,lrvr,d,crl,llgc,tmhl,algsi,lgh,icmh,clhrl,xgrk,icm,iilf,ork,cg,ldgr,lgf,iihf,llghr,sg,stam,tmhh,slgf,basr,lgb,cgfi,lax,clfit,lrvgr,nihl,ni,srdl,srk,xihf,stgrl,sthrl,algf,cgit,ng,lat,llghrl,ltgr,nihh,clgfrl,srlk,agr,ler,bcr_flush,stcy,cds,clfi,nihf,ly,clt,lgat,alg,lhy,lgfrl,clghsi,clrt,tmll,srlg,ay,sty,clr,lgfi,lan,clgt,ahik,sra,algrk,clgr,tmy,tmlh,alghsik,lcgr,mvi,ltgf,xr,larl,ldr,llgcr,clgrt,clrl,cghsi,cliy,oy,ogr,llgt,slr,chi,s,icmy,llc,ngr,clhhsi,ltgfr,llill,lhi,o,sll,clgrl,clgf,mviy,algfr,rll,sldl,lg,niy,st,sgr,ag,le,xgr,cr,stg,llilh,sr,cdsg,sllk,stoc,csg,clgit,chhsi,strl,llilf,lndfr,ngrk,clgfi,llgh,oill,la,llhrl,stc,lghi,oihl,xiy,sllg,llgf,cgrt,cl,sl,oi,oilh,nr,srak,oihh,ear,slgrk,og,c,slgfi,sthy,oilf,oiy,oihf,a,cfi,srag,brasl,alr,cgrl,llgfrl,cit,ley,exrl,lcdfr,lay,xilf,alsi,mvhhi,srl,chsi,lgfr,lrvg,cly,sgrk,ahi,nill,jg,slrk,lxr,sar,slfi,cpsdr,lcgfr,aghik,nilh,mvhi,lpdfr,xy,alrk,lao,agsi,ldy,nilf,llhr,alfi,laog,sly,aghi,bras,srda,lt,lbr,lzxr,lzdr,lzer")) "nothing") + (eq_attr "mnemonic" "ltg,ogrk,lr,lghrl,x,asi,lhr,ar,lhrl,llgfr,clghrl,cgr,cli,agrk,ic,lrv,clg,cy,cghi,sy,clgfr,al,tm,lang,lghr,laa,ark,lh,or,icy,xi,n,llihl,afi,cs,nrk,sth,lgr,l,lcr,stey,xg,crt,slgfr,ny,ld,j,llihh,slgr,clfhsi,slg,lb,lgrl,lrl,llihf,llcr,laxg,mvghi,rllg,xrk,laag,alhsik,algfi,algr,aly,agfi,lrvr,crl,llgc,tmhl,algsi,lgh,icmh,clhrl,xgrk,icm,iilf,ork,cg,ldgr,lgf,iihf,llghr,sg,stam,tmhh,slgf,basr,lgb,cgfi,lax,clfit,lrvgr,nihl,ni,srk,xihf,stgrl,sthrl,algf,cgit,ng,lat,llghrl,ltgr,nihh,clgfrl,srlk,agr,ler,bcr_flush,stcy,clfi,nihf,ly,clt,lgat,alg,lhy,lgfrl,clghsi,clrt,tmll,srlg,ay,sty,clr,lgfi,lan,clgt,ahik,sra,algrk,clgr,tmy,tmlh,alghsik,lcgr,mvi,ltgf,xr,larl,ldr,llgcr,clgrt,clrl,cghsi,cliy,oy,ogr,llgt,slr,chi,s,icmy,llc,ngr,clhhsi,ltgfr,llill,lhi,o,sll,clgrl,clgf,mviy,algfr,rll,lg,niy,st,sgr,ag,le,xgr,cr,stg,llilh,sr,cdsg,sllk,stoc,csg,clgit,chhsi,strl,llilf,lndfr,ngrk,clgfi,llgh,oill,la,llhrl,stc,lghi,oihl,xiy,sllg,llgf,cgrt,cl,sl,oi,oilh,nr,srak,oihh,ear,slgrk,og,c,slgfi,sthy,oilf,oiy,oihf,a,cfi,srag,brasl,alr,cgrl,llgfrl,cit,ley,exrl,lcdfr,lay,xilf,alsi,mvhhi,srl,chsi,lgfr,lrvg,cly,sgrk,ahi,nill,jg,slrk,lxr,sar,slfi,cpsdr,lcgfr,aghik,nilh,mvhi,lpdfr,xy,alrk,lao,agsi,ldy,nilf,llhr,alfi,laog,sly,aghi,bras,lt,lbr,lzxr,lzdr,lzer")) "nothing") (define_insn_reservation "zEC12_simple_fp" 0 (and (eq_attr "cpu" "zEC12") @@ -74,10 +74,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "mhy")) "nothing") -(define_insn_reservation "zEC12_dlr" 25 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "dlr")) "nothing") - (define_insn_reservation "zEC12_ltxtr" 18 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ltxtr")) "nothing") @@ -142,10 +138,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "cgf")) "nothing") -(define_insn_reservation "zEC12_lmy" 0 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "lmy")) "nothing") - (define_insn_reservation "zEC12_std" 3 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "std")) "nothing") @@ -222,10 +214,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ex")) "nothing") -(define_insn_reservation "zEC12_mfy" 7 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "mfy")) "nothing") - (define_insn_reservation "zEC12_cxlgtr" 4 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "cxlgtr")) "nothing") @@ -338,10 +326,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ltxbr")) "nothing") -(define_insn_reservation "zEC12_dr" 16 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "dr")) "nothing") - (define_insn_reservation "zEC12_lxdb" 3 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "lxdb")) "nothing") @@ -362,10 +346,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "agf")) "nothing") -(define_insn_reservation "zEC12_lm" 0 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "lm")) "nothing") - (define_insn_reservation "zEC12_msgfr" 6 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "msgfr")) "nothing") @@ -374,10 +354,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "lxdbr")) "nothing") -(define_insn_reservation "zEC12_stm" 0 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "stm")) "nothing") - (define_insn_reservation "zEC12_cgdtr" 2 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "cgdtr")) "nothing") @@ -398,10 +374,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "sqdbr")) "nothing") -(define_insn_reservation "zEC12_dl" 25 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "dl")) "nothing") - (define_insn_reservation "zEC12_cfebr" 2 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "cfebr")) "nothing") @@ -414,10 +386,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "lnr")) "nothing") -(define_insn_reservation "zEC12_m" 7 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "m")) "nothing") - (define_insn_reservation "zEC12_ipm" 3 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ipm")) "nothing") @@ -434,10 +402,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ddbr")) "nothing") -(define_insn_reservation "zEC12_stmy" 0 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "stmy")) "nothing") - (define_insn_reservation "zEC12_ste" 4 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ste")) "nothing") @@ -446,10 +410,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "ahy")) "nothing") -(define_insn_reservation "zEC12_mlr" 7 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "mlr")) "nothing") - (define_insn_reservation "zEC12_sqeb" 29 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "sqeb")) "nothing") @@ -562,10 +522,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "axbr")) "nothing") -(define_insn_reservation "zEC12_mr" 7 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "mr")) "nothing") - (define_insn_reservation "zEC12_stmg" 0 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "stmg")) "nothing") @@ -598,10 +554,6 @@ (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "slbg")) "nothing") -(define_insn_reservation "zEC12_ml" 7 - (and (eq_attr "cpu" "zEC12") - (eq_attr "mnemonic" "ml")) "nothing") - (define_insn_reservation "zEC12_lam" 0 (and (eq_attr "cpu" "zEC12") (eq_attr "mnemonic" "lam")) "nothing") diff --git a/gcc/config/s390/2964.md b/gcc/config/s390/2964.md index 6abdf219975..91d58fd16b5 100644 --- a/gcc/config/s390/2964.md +++ b/gcc/config/s390/2964.md @@ -31,7 +31,7 @@ icmy,icy,iihf,iilf,ipm,la,larl,lay,lb,lbr,lcgr,lcr,lgb,lgbr,lgf,lgfi,lgfr,\ lgfrl,lgh,lghi,lghr,lghrl,lgr,lh,lhi,lhr,lhrl,lhy,llcr,llgfr,llghr,llgtr,\ llhr,llihf,llihh,llihl,llilf,llilh,llill,lngr,lnr,loc,locg,locghi,locgr,\ lochi,locr,lpgr,lpr,lr,lrv,lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,\ -m,mfy,mghi,mh,mhi,mhy,ml,mlg,mlgr,mlr,mr,ms,msfi,msg,msgf,msgfi,msgfr,\ +mghi,mh,mhi,mhy,mlg,mlgr,ms,msfi,msg,msgf,msgfi,msgfr,\ msgr,msr,msy,n,ng,ngr,ngrk,nihf,nihh,nihl,nilf,nilh,nill,nr,nrk,ny,o,og,\ ogr,ogrk,oihf,oihh,oihl,oilf,oilh,oill,or,ork,oy,pfpo,popcnt,ppa,risbg,\ risbgn,rll,rllg,s,sg,sgf,sgfr,sgr,sgrk,sh,shy,sl,slb,slbg,slbgr,slbr,slfi,\ @@ -53,7 +53,7 @@ xiy") (const_int 1)] (const_int 0))) (define_attr "z13_unit_fxd" "" -(cond [(eq_attr "mnemonic" "dlgr,dlr,dr,dsgfr,dsgr") +(cond [(eq_attr "mnemonic" "dlgr,dsgfr,dsgr") (const_int 1)] (const_int 0))) (define_attr "z13_unit_lsu" "" @@ -63,8 +63,8 @@ chsi,chy,cl,clc,clfhsi,clg,clgf,clgfrl,clghsi,clgrl,clgt,clhhsi,clhrl,cli,\ cliy,clm,clmy,clrl,clt,cly,crl,cy,ddb,deb,ear,ic,icm,icmh,icmy,icy,l,laa,\ laag,lan,lang,lao,laog,lat,lax,laxg,lb,lcbb,ld,lde,ldeb,ldy,le,ley,lg,lgat,\ lgb,lgf,lgfrl,lgh,lghrl,lgrl,lh,lhrl,lhy,llc,llgc,llgf,llgfrl,llgh,llghrl,\ -llgt,llh,llhrl,loc,locg,lrl,lrv,lrvg,lrvh,lt,ltg,ltgf,ly,m,madb,maeb,meeb,\ -mfy,mh,mhy,ml,mlg,ms,msdb,mseb,msg,msgf,msy,mvghi,mvhhi,mvhi,mvi,mviy,n,\ +llgt,llh,llhrl,loc,locg,lrl,lrv,lrvg,lrvh,lt,ltg,ltgf,ly,madb,maeb,meeb,\ +mh,mhy,mlg,ms,msdb,mseb,msg,msgf,msy,mvghi,mvhhi,mvhi,mvi,mviy,n,\ ng,ni,niy,ntstg,ny,o,og,oi,oiy,oy,s,sar,sdb,seb,sfpc,sg,sgf,sh,shy,sl,\ slb,slbg,slg,slgf,sly,sqdb,sqeb,st,stc,stcy,std,stdy,ste,stey,stg,stgrl,\ sth,sthrl,sthy,stoc,stocg,strl,strv,strvg,strvh,sty,sy,tabort,tm,tmy,vl,\ @@ -117,21 +117,21 @@ kdtr,kxtr,wfkdb,wfksb") (cond [(eq_attr "mnemonic" "bas,basr,cdfbr,cdftr,cdgbr,cdgtr,cdlfbr,\ cdlftr,cdlgbr,cdlgtr,cefbr,cegbr,celfbr,celgbr,cfdbr,cfebr,cfxbr,cgdbr,cgdtr,\ cgebr,cgxbr,cgxtr,chhsi,clfdbr,clfebr,clfxbr,clfxtr,clgdbr,clgdtr,clgebr,\ -clgxbr,clgxtr,cs,csg,csy,d,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,rnsbg,\ +clgxbr,clgxtr,cs,csg,csy,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,rnsbg,\ rosbg,rxsbg,stpq,vgef,vgeg,vscef,vsceg,vsteb") (const_int 1)] (const_int 0))) (define_attr "z13_expanded" "" -(cond [(eq_attr "mnemonic" "cds,cdsg,cdsy,cxfbr,cxftr,cxgbr,cxgtr,\ -cxlftr,cxlgbr,cxlgtr,dl,dlg,dsg,dsgf,lam,lm,lmg,lmy,sldl,srda,srdl,stam,stm,\ -stmg,stmy,tbegin,tbeginc") +(cond [(eq_attr "mnemonic" "cdsg,cxfbr,cxftr,cxgbr,cxgtr,\ +cxlftr,cxlgbr,cxlgtr,dlg,dsg,dsgf,lam,lmg,stam,\ +stmg,tbegin,tbeginc") (const_int 1)] (const_int 0))) (define_attr "z13_groupalone" "" (cond [(eq_attr "mnemonic" "alc,alcg,alcgr,alcr,axbr,axtr,clc,cxbr,\ -cxtr,dlgr,dlr,dr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ -lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,m,madb,maeb,maebr,mfy,ml,mlg,\ -mlgr,mlr,mr,msdb,mseb,msebr,mvc,mxbr,mxtr,oc,sfpc,slb,slbg,slbgr,slbr,\ +cxtr,dlgr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ +lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,madb,maeb,maebr,mlg,\ +mlgr,msdb,mseb,msebr,mvc,mxbr,mxtr,oc,sfpc,slb,slbg,slbgr,slbr,\ sqxbr,sxbr,sxtr,tabort,tcxb,tdcxt,tend,xc,kxbr,kxtr") (const_int 1)] (const_int 0))) @@ -159,8 +159,8 @@ lgr,lh,lhi,lhr,lhrl,lhy,llcr,llgfr,llghr,llgtr,llhr,llihf,llihh,llihl,\ llilf,llilh,llill,lndfr,lpdfr,lr,lrv,lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,\ ltgr,ltr,lzdr,lzer,n,ng,ngr,ngrk,nihf,nihh,nihl,nilf,nilh,nill,nop,nopr,nr,\ nrk,ny,o,og,ogr,ogrk,oihf,oihh,oihl,oilf,oilh,oill,or,ork,oy,pfpo,ppa,\ -risbg,risbgn,rll,rllg,s,sg,sgr,sgrk,sl,sldl,slfi,slg,slgf,slgfi,slgfr,slgr,\ -slgrk,sll,sllg,sllk,slr,slrk,sly,sr,sra,srag,srak,srda,srdl,srl,srlg,srlk,\ +risbg,risbgn,rll,rllg,s,sg,sgr,sgrk,sl,slfi,slg,slgf,slgfi,slgfr,slgr,\ +slgrk,sll,sllg,sllk,slr,slrk,sly,sr,sra,srag,srak,srl,srlg,srlk,\ sy,tm,tmh,tmhh,tmhl,tml,tmlh,tmll,tmy,vlr,vlvgb,vlvgf,vlvgg,vlvgh,x,xg,\ xgr,xgrk,xihf,xilf,xr,xrk,xy")) "nothing") @@ -192,8 +192,8 @@ wfchxb,wflcdb,wflcsb,wflcxb,wflndb,wflnsb,wflnxb,wflpdb,wflpsb,wflpxb,xi,xiy")) (define_insn_reservation "z13_2" 2 (and (eq_attr "cpu" "z13") (eq_attr "mnemonic" "cdb,cdbr,cebr,ear,ipm,l,lcbb,lcdbr,lcebr,ld,lde,\ -ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lm,lmg,\ -lmy,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ +ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lmg,\ +lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ vceqbs,vceqfs,vceqgs,vceqhs,vchbs,vchfs,vchgs,vchhs,vchlbs,vchlfs,vchlgs,\ vchlhs,vfcedbs,vfcesbs,vfchdbs,vfchedbs,vfchesbs,vfchsbs,vfeeb,vfeef,vfeeh,\ vfeneb,vfenef,vfeneh,vfenezb,vfenezf,vfenezh,vftcidb,vftcisb,vistrb,vistrf,\ @@ -203,7 +203,7 @@ wfchexbs,wfchxbs,wfcsb,kebr,kdb,kdbr,wfkdb,wfksb")) "nothing") (define_insn_reservation "z13_3" 3 (and (eq_attr "cpu" "z13") -(eq_attr "mnemonic" "cds,cdsy,std,stdy,ste,stey,vcksm,vfeezbs,\ +(eq_attr "mnemonic" "std,stdy,ste,stey,vcksm,vfeezbs,\ vfeezhs,vgfmab,vgfmaf,vgfmag,vgfmah,vgfmb,vgfmf,vgfmg,vgfmh,vistrbs,vistrfs,\ vl,vlbb,vlgvf,vlgvg,vlgvh,vll,vmaeb,vmaef,vmaeh,vmahb,vmahf,vmahh,vmalb,\ vmaleb,vmalef,vmaleh,vmalf,vmalhb,vmalhf,vmalhh,vmalhw,vmalob,vmalof,vmaloh,\ @@ -219,8 +219,8 @@ mh,mhi,mhy,mvc,oc,tabort,tbegin,tbeginc,tend,vst,vstl,xc")) "nothing") (define_insn_reservation "z13_5" 5 (and (eq_attr "cpu" "z13") (eq_attr "mnemonic" "alc,alcg,alcgr,alcr,cs,csg,csy,lngfr,lpgfr,ms,\ -msfi,msgf,msgfi,msgfr,msr,msy,rnsbg,rosbg,rxsbg,slb,slbg,slbgr,slbr,stm,\ -stmg,stmy")) "nothing") +msfi,msgf,msgfi,msgfr,msr,msy,rnsbg,rosbg,rxsbg,slb,slbg,slbgr,slbr,\ +stmg")) "nothing") (define_insn_reservation "z13_6" 6 (and (eq_attr "cpu" "z13") @@ -246,7 +246,7 @@ vfmsdb,vfmssb,vfsdb,vfssb,vldeb,vledb,kdtr")) "nothing") (define_insn_reservation "z13_10" 10 (and (eq_attr "cpu" "z13") (eq_attr "mnemonic" "cdfbr,cdgbr,cdlfbr,cdlgbr,cefbr,cegbr,celfbr,\ -celgbr,flogr,m,madb,maeb,maebr,mfy,ml,mlr,mr,msdb,mseb,msebr")) "nothing") +celgbr,flogr,madb,maeb,maebr,msdb,mseb,msebr")) "nothing") (define_insn_reservation "z13_11" 11 (and (eq_attr "cpu" "z13") @@ -269,7 +269,7 @@ ltxbr,ltxtr,lxdtr,sxbr,sxtr")) "nothing") (define_insn_reservation "z13_20" 20 (and (eq_attr "cpu" "z13") (eq_attr "mnemonic" "cdftr,cdgtr,cdlftr,cdlgtr,cgdtr,cgxtr,clfxtr,\ -clgdtr,clgxtr,cxftr,cxgtr,cxlftr,cxlgtr,d,ddb,ddbr,ddtr,deb,debr,dl,dlg,dlgr,\ -dlr,dr,dsg,dsgf,dsgfr,dsgr,dxbr,dxtr,efpc,mdtr,mxbr,mxtr,sqdb,sqdbr,sqeb,\ +clgdtr,clgxtr,cxftr,cxgtr,cxlftr,cxlgtr,ddb,ddbr,ddtr,deb,debr,dlg,dlgr,\ +dsg,dsgf,dsgfr,dsgr,dxbr,dxtr,efpc,mdtr,mxbr,mxtr,sqdb,sqdbr,sqeb,\ sqebr,sqxbr,vfddb,vfdsb,vfsqdb,vfsqsb,wfddb,wfdsb,wfdxb,wfsqdb,wfsqxb")) "nothing") diff --git a/gcc/config/s390/3906.md b/gcc/config/s390/3906.md index d3033c6ae47..02692cbf83d 100644 --- a/gcc/config/s390/3906.md +++ b/gcc/config/s390/3906.md @@ -31,7 +31,7 @@ icmh,icmy,icy,iihf,iilf,ipm,la,larl,lay,lb,lbr,lcgr,lcr,lgb,lgbr,lgf,lgfi,\ lgfr,lgfrl,lgh,lghi,lghr,lghrl,lgr,lh,lhi,lhr,lhrl,lhy,llcr,llgfr,llghr,\ llgtr,llhr,llihf,llihh,llihl,llilf,llilh,llill,lngr,lnr,loc,locg,locghi,\ locgr,lochi,locr,lpgr,lpr,lr,lrv,lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,\ -ltgr,ltr,m,mfy,mg,mgh,mghi,mgrk,mh,mhi,mhy,ml,mlg,mlgr,mlr,mr,ms,msfi,msg,\ +ltgr,ltr,mg,mgh,mghi,mgrk,mh,mhi,mhy,mlg,mlgr,ms,msfi,msg,\ msgf,msgfi,msgfr,msgr,msgrkc,msr,msrkc,msy,n,ng,ngr,ngrk,nihf,nihh,nihl,\ nilf,nilh,nill,nr,nrk,ny,o,og,ogr,ogrk,oihf,oihh,oihl,oilf,oilh,oill,or,\ ork,oy,pfpo,popcnt,risbg,risbgn,rll,rllg,s,sg,sgf,sgfr,sgh,sgr,sgrk,sh,\ @@ -54,7 +54,7 @@ vstrl,vstrlr,xi,xiy") (const_int 1)] (const_int 0))) (define_attr "z14_unit_fxd" "" -(cond [(eq_attr "mnemonic" "dlgr,dlr,dr,dsgfr,dsgr") +(cond [(eq_attr "mnemonic" "dlgr,dsgfr,dsgr") (const_int 1)] (const_int 0))) (define_attr "z14_unit_lsu" "" @@ -64,8 +64,8 @@ chrl,chsi,chy,cl,clc,clfhsi,clg,clgf,clgfrl,clghsi,clgrl,clgt,clhhsi,clhrl,\ cli,cliy,clm,clmy,clrl,clt,cly,crl,cy,ddb,deb,ear,ic,icm,icmh,icmy,icy,l,\ laa,laag,lan,lang,lao,laog,lat,lax,laxg,lb,lcbb,ld,lde,ldeb,ldy,le,ley,lg,\ lgat,lgb,lgf,lgfrl,lgh,lghrl,lgrl,lh,lhrl,lhy,llc,llgc,llgf,llgfrl,llgh,\ -llghrl,llgt,llh,llhrl,loc,locg,lrl,lrv,lrvg,lrvh,lt,ltg,ltgf,ly,m,madb,maeb,\ -meeb,mfy,mg,mgh,mh,mhy,ml,mlg,ms,msdb,mseb,msg,msgf,msy,mvghi,mvhhi,mvhi,\ +llghrl,llgt,llh,llhrl,loc,locg,lrl,lrv,lrvg,lrvh,lt,ltg,ltgf,ly,madb,maeb,\ +meeb,mg,mgh,mh,mhy,mlg,ms,msdb,mseb,msg,msgf,msy,mvghi,mvhhi,mvhi,\ mvi,mviy,n,ng,ni,niy,ntstg,ny,o,og,oi,oiy,oy,s,sar,sdb,seb,sfpc,sg,sgf,\ sgh,sh,shy,sl,slb,slbg,slg,slgf,sly,sqdb,sqeb,st,stc,stcy,std,stdy,ste,\ stey,stg,stgrl,sth,sthrl,sthy,stoc,stocg,strl,strv,strvg,strvh,sty,sy,\ @@ -121,21 +121,21 @@ vfkedb,vfkhsb,vfkhdb,wfkhxb,vfkhesb,vfkhedb,wfkhexb") (cond [(eq_attr "mnemonic" "bas,basr,cdfbr,cdftr,cdgbr,cdgtr,cdlfbr,\ cdlftr,cdlgbr,cdlgtr,cefbr,cegbr,celfbr,celgbr,cfdbr,cfebr,cfxbr,cgdbr,cgdtr,\ cgebr,cgxbr,cgxtr,chhsi,clfdbr,clfebr,clfxbr,clfxtr,clgdbr,clgdtr,clgebr,\ -clgxbr,clgxtr,cs,csg,csy,d,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,rxsbg,stpq,\ +clgxbr,clgxtr,cs,csg,csy,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,rxsbg,stpq,\ vgef,vgeg,vscef,vsceg,vsteb") (const_int 1)] (const_int 0))) (define_attr "z14_expanded" "" -(cond [(eq_attr "mnemonic" "cds,cdsg,cdsy,cxfbr,cxftr,cxgbr,cxgtr,\ -cxlftr,cxlgbr,cxlgtr,dl,dlg,dsg,dsgf,lam,lm,lmg,lmy,sldl,srda,srdl,stam,stm,\ -stmg,stmy,tbegin,tbeginc") +(cond [(eq_attr "mnemonic" "cdsg,cxfbr,cxftr,cxgbr,cxgtr,\ +cxlftr,cxlgbr,cxlgtr,dlg,dsg,dsgf,lam,lmg,stam,\ +stmg,tbegin,tbeginc") (const_int 1)] (const_int 0))) (define_attr "z14_groupalone" "" (cond [(eq_attr "mnemonic" "alc,alcg,alcgr,alcr,axbr,axtr,clc,cxbr,\ -cxtr,dlgr,dlr,dr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ -lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,m,madb,maeb,maebr,mfy,mg,mgrk,\ -ml,mlg,mlgr,mlr,mr,msdb,mseb,msebr,mvc,mxbr,mxtr,oc,ppa,sfpc,slb,slbg,\ +cxtr,dlgr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ +lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,madb,maeb,maebr,mg,mgrk,\ +mlg,mlgr,msdb,mseb,msebr,mvc,mxbr,mxtr,oc,ppa,sfpc,slb,slbg,\ slbgr,slbr,sqxbr,sxbr,sxtr,tabort,tcxb,tdcxt,tend,xc,kxbr,kxtr") (const_int 1)] (const_int 0))) @@ -165,8 +165,8 @@ llihl,llilf,llilh,llill,lndfr,lngr,lnr,lpdfr,lpgr,lpr,lr,lrv,lrvg,lrvgr,\ lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,lzdr,lzer,n,ng,ngr,ngrk,nihf,nihh,\ nihl,nilf,nilh,nill,nop,nopr,nr,nrk,ny,o,og,ogr,ogrk,oihf,oihh,oihl,oilf,\ oilh,oill,or,ork,oy,pfpo,risbg,risbgn,rll,rllg,rnsbg,rosbg,s,sg,sgr,sgrk,\ -sl,sldl,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,sllk,slr,slrk,sly,\ -sr,sra,srag,srak,srda,srdl,srl,srlg,srlk,sy,tm,tmh,tmhh,tmhl,tml,tmlh,\ +sl,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,sllk,slr,slrk,sly,\ +sr,sra,srag,srak,srl,srlg,srlk,sy,tm,tmh,tmhh,tmhl,tml,tmlh,\ tmll,tmy,vlr,vlvgb,vlvgf,vlvgg,vlvgh,x,xg,xgr,xgrk,xihf,xilf,xr,xrk,xy")) "nothing") (define_insn_reservation "z14_1" 1 @@ -199,8 +199,8 @@ vfkesb,vfkedb,vfkhsb,vfkhdb,wfkhxb,vfkhesb,vfkhedb,wfkhexb")) "nothing") (define_insn_reservation "z14_2" 2 (and (eq_attr "cpu" "z14") (eq_attr "mnemonic" "cdb,cdbr,cebr,ear,ipm,l,lcbb,lcdbr,lcebr,ld,lde,\ -ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lm,lmg,\ -lmy,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ +ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lmg,\ +lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ vceqbs,vceqfs,vceqgs,vceqhs,vchbs,vchfs,vchgs,vchhs,vchlbs,vchlfs,vchlgs,\ vchlhs,vfcedbs,vfcesbs,vfchdbs,vfchedbs,vfchesbs,vfchsbs,vfeeb,vfeef,vfeeh,\ vfeneb,vfenef,vfeneh,vfenezb,vfenezf,vfenezh,vftcidb,vftcisb,vistrb,vistrf,\ @@ -210,7 +210,7 @@ wfcexbs,wfchexbs,wfchxbs,wfcsb,kebr,kdb,kdbr,wfkdb,wfksb")) "nothing") (define_insn_reservation "z14_3" 3 (and (eq_attr "cpu" "z14") -(eq_attr "mnemonic" "cds,cdsy,mgh,mghi,mh,mhi,mhy,std,stdy,ste,stey,\ +(eq_attr "mnemonic" "mgh,mghi,mh,mhi,mhy,std,stdy,ste,stey,\ vcksm,vfeezbs,vfeezhs,vgfmab,vgfmaf,vgfmag,vgfmah,vgfmb,vgfmf,vgfmg,vgfmh,\ vistrbs,vistrfs,vl,vlbb,vll,vlrlr,vmaeb,vmaef,vmaeh,vmahb,vmahf,vmahh,vmalb,\ vmaleb,vmalef,vmaleh,vmalf,vmalhb,vmalhf,vmalhh,vmalhw,vmalob,vmalof,vmaloh,\ @@ -227,7 +227,7 @@ tbeginc,tend,vst,vstl,vstrl,vstrlr,xc")) "nothing") (define_insn_reservation "z14_5" 5 (and (eq_attr "cpu" "z14") (eq_attr "mnemonic" "alc,alcg,alcgr,alcr,cs,csg,csy,msrkc,slb,slbg,\ -slbgr,slbr,stm,stmg,stmy")) "nothing") +slbgr,slbr,stmg")) "nothing") (define_insn_reservation "z14_6" 6 (and (eq_attr "cpu" "z14") @@ -249,7 +249,7 @@ vfasb,vfisb,vfmasb,vfmsb,vfmssb,vfnmssb,vfssb,vgef,vgeg,wflld,kdtr")) (define_insn_reservation "z14_9" 9 (and (eq_attr "cpu" "z14") -(eq_attr "mnemonic" "cxfbr,cxgbr,cxlgbr,m,mfy,ml,mlr,mr,stam,wfaxb,\ +(eq_attr "mnemonic" "cxfbr,cxgbr,cxlgbr,stam,wfaxb,\ wfixb,wfsxb")) "nothing") (define_insn_reservation "z14_10" 10 @@ -278,8 +278,8 @@ ltxbr,ltxtr,lxdtr,sxbr,sxtr")) "nothing") (define_insn_reservation "z14_20" 20 (and (eq_attr "cpu" "z14") (eq_attr "mnemonic" "cdftr,cdgtr,cdlftr,cdlgtr,cgdtr,cgxtr,clfxtr,\ -clgdtr,clgxtr,cxftr,cxgtr,cxlftr,cxlgtr,d,ddb,ddbr,ddtr,deb,debr,dl,dlg,dlgr,\ -dlr,dr,dsg,dsgf,dsgfr,dsgr,dxbr,dxtr,efpc,mdtr,mxbr,mxtr,sqdb,sqdbr,sqeb,\ +clgdtr,clgxtr,cxftr,cxgtr,cxlftr,cxlgtr,ddb,ddbr,ddtr,deb,debr,dlg,dlgr,\ +dsg,dsgf,dsgfr,dsgr,dxbr,dxtr,efpc,mdtr,mxbr,mxtr,sqdb,sqdbr,sqeb,\ sqebr,sqxbr,vfddb,vfdsb,vfsqdb,vfsqsb,wfddb,wfdsb,wfdxb,wfmaxb,wfmsxb,wfmxb,\ wfnmaxb,wfnmsxb,wfsqdb,wfsqxb")) "nothing") diff --git a/gcc/config/s390/3931.md b/gcc/config/s390/3931.md index c5b93f8d0db..11c67ab6fd2 100644 --- a/gcc/config/s390/3931.md +++ b/gcc/config/s390/3931.md @@ -149,8 +149,6 @@ ltgf, ltgfr, ltgr, ltr, -m, -mfy, mg, mgh, mghi, @@ -158,11 +156,8 @@ mgrk, mh, mhi, mhy, -ml, mlg, mlgr, -mlr, -mr, ms, msc, msfi, @@ -426,8 +421,6 @@ xiy" (define_attr "z16_unit_fxd" "" (cond [(eq_attr "mnemonic" "dlgr, -dlr, -dr, dsgfr, dsgr" ) @@ -547,17 +540,14 @@ lt, ltg, ltgf, ly, -m, madb, maeb, mdb, meeb, -mfy, mg, mgh, mh, mhy, -ml, mlg, ms, msc, @@ -1233,7 +1223,6 @@ clgxtr, cs, csg, csy, -d, efpc, ex, lcgfr, @@ -1256,9 +1245,7 @@ vsteh" (define_attr "z16_expanded" "" (cond [(eq_attr "mnemonic" -"cds, -cdsg, -cdsy, +"cdsg, cxfbr, cxftr, cxgbr, @@ -1267,21 +1254,13 @@ cxlfbr, cxlftr, cxlgbr, cxlgtr, -dl, dlg, dsg, dsgf, lam, -lm, lmg, -lmy, -sldl, -srda, -srdl, stam, -stm, stmg, -stmy, tbegin, tbeginc" ) @@ -1299,8 +1278,6 @@ clc, cxbr, cxtr, dlgr, -dlr, -dr, dsgfr, dsgr, dxbr, @@ -1321,18 +1298,13 @@ lxdbr, lxdtr, lxeb, lxebr, -m, madb, maeb, maebr, -mfy, mg, mgrk, -ml, mlg, mlgr, -mlr, -mr, msdb, mseb, msebr, @@ -1620,7 +1592,6 @@ sg, sgr, sgrk, sl, -sldl, slfi, slg, slgf, @@ -1638,8 +1609,6 @@ sr, sra, srag, srak, -srda, -srdl, srk, srl, srlg, @@ -2028,9 +1997,7 @@ llghrl, llgt, llh, llhrl, -lm, lmg, -lmy, lndbr, lnebr, lpdbr, @@ -2117,9 +2084,7 @@ wftcixb" (define_insn_reservation "z16_3" 3 (and (eq_attr "cpu" "z16") (eq_attr "mnemonic" -"cds, -cdsy, -mgh, +"mgh, mghi, mh, mhi, @@ -2290,9 +2255,7 @@ slb, slbg, slbgr, slbr, -stm, stmg, -stmy, vcdgb, vcdlgb, vcefb, @@ -2398,14 +2361,9 @@ cxfbr, cxgbr, cxlfbr, cxlgbr, -m, madb, maeb, maebr, -mfy, -ml, -mlr, -mr, msdb, mseb, msebr, @@ -2505,17 +2463,13 @@ clgdtr, clgxtr, cxgtr, cxlgtr, -d, ddb, ddbr, ddtr, deb, debr, -dl, dlg, dlgr, -dlr, -dr, dsg, dsgf, dsgfr, diff --git a/gcc/config/s390/8561.md b/gcc/config/s390/8561.md index 07797001f2d..2c49094c234 100644 --- a/gcc/config/s390/8561.md +++ b/gcc/config/s390/8561.md @@ -30,8 +30,8 @@ ic,icm,icmh,icmy,icy,iihf,iilf,ipm,la,larl,lay,lb,lbr,lcgr,lcr,lgb,lgbr,\ lgf,lgfi,lgfr,lgfrl,lgh,lghi,lghr,lghrl,lgr,lh,lhi,lhr,lhrl,lhy,llcr,\ llgcr,llgfr,llghr,llgtr,llhr,llihf,llihh,llihl,llilf,llilh,llill,lngr,lnr,\ loc,locg,locghi,locgr,lochi,locr,lpgr,lpr,lr,lrv,lrvg,lrvgr,lrvh,lrvr,lt,\ -ltg,ltgf,ltgfr,ltgr,ltr,m,mfy,mg,mgh,mghi,mgrk,mh,mhi,mhy,ml,mlg,mlgr,mlr,\ -mr,ms,msfi,msg,msgf,msgfi,msgfr,msgr,msgrkc,msr,msrkc,msy,n,ng,ngr,ngrk,\ +ltg,ltgf,ltgfr,ltgr,ltr,mg,mgh,mghi,mgrk,mh,mhi,mhy,mlg,mlgr,\ +ms,msfi,msg,msgf,msgfi,msgfr,msgr,msgrkc,msr,msrkc,msy,n,ng,ngr,ngrk,\ nihf,nihh,nihl,nilf,nilh,nill,nr,nrk,ny,o,og,ogr,ogrk,oihf,oihh,oihl,oilf,\ oilh,oill,or,ork,oy,pfpo,popcnt,risbg,risbgn,rll,rllg,s,sg,sgf,sgfr,sgh,\ sgr,sgrk,sh,shy,sl,slb,slbg,slbgr,slbr,slfi,slg,slgf,slgfi,slgfr,slgr,\ @@ -53,7 +53,7 @@ vlvgp,vst,vstef,vsteg,vstl,vstrl,vstrlr,xi,xiy") (const_int 1)] (const_int 0))) (define_attr "z15_unit_fxd" "" -(cond [(eq_attr "mnemonic" "dlgr,dlr,dr,dsgfr,dsgr") +(cond [(eq_attr "mnemonic" "dlgr,dsgfr,dsgr") (const_int 1)] (const_int 0))) (define_attr "z15_unit_lsu" "" @@ -64,7 +64,7 @@ clgt,clhhsi,clhrl,cli,cliy,clm,clmy,clrl,clt,cly,crl,cy,ddb,deb,ear,ic,icm,\ icmh,icmy,icy,l,laa,laag,lan,lang,lao,laog,lat,lax,laxg,lb,lcbb,ld,lde,\ ldeb,ldy,le,ley,lg,lgat,lgb,lgf,lgfrl,lgh,lghrl,lgrl,lh,lhrl,lhy,llc,llgc,\ llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,loc,locg,lrl,lrv,lrvg,lrvh,lt,ltg,\ -ltgf,ly,m,madb,maeb,mdb,meeb,mfy,mg,mgh,mh,mhy,ml,mlg,ms,msdb,mseb,msg,\ +ltgf,ly,madb,maeb,mdb,meeb,mg,mgh,mh,mhy,mlg,ms,msdb,mseb,msg,\ msgf,msy,mvghi,mvhhi,mvhi,mvi,mviy,n,ng,ni,niy,ntstg,ny,o,og,oi,oiy,oy,s,\ sar,sdb,seb,sfpc,sg,sgf,sgh,sh,shy,sl,slb,slbg,slg,slgf,sly,sqdb,sqeb,st,\ stc,stcy,std,stdy,ste,stey,stg,stgrl,sth,sthrl,sthy,stoc,stocg,strl,strv,\ @@ -121,21 +121,21 @@ vfkhedb,wfkhexb") (cond [(eq_attr "mnemonic" "bas,basr,cdfbr,cdftr,cdgbr,cdgtr,cdlfbr,\ cdlftr,cdlgbr,cdlgtr,cefbr,cegbr,celfbr,celgbr,cfdbr,cfebr,cfxbr,cgdbr,cgdtr,\ cgebr,cgxbr,cgxtr,chhsi,clfdbr,clfdtr,clfebr,clfxbr,clfxtr,clgdbr,clgdtr,\ -clgebr,clgxbr,clgxtr,cs,csg,csy,d,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,\ +clgebr,clgxbr,clgxtr,cs,csg,csy,efpc,ex,lcgfr,lngfr,lpgfr,lpq,lxr,lzxr,\ rxsbg,stpq,vgef,vgeg,vscef,vsceg,vsteb,vsteh") (const_int 1)] (const_int 0))) (define_attr "z15_expanded" "" -(cond [(eq_attr "mnemonic" "cds,cdsg,cdsy,cxfbr,cxftr,cxgbr,cxgtr,\ -cxlfbr,cxlftr,cxlgbr,cxlgtr,dl,dlg,dsg,dsgf,lam,lm,lmg,lmy,sldl,srda,srdl,\ -stam,stm,stmg,stmy,tbegin,tbeginc") +(cond [(eq_attr "mnemonic" "cdsg,cxfbr,cxftr,cxgbr,cxgtr,\ +cxlfbr,cxlftr,cxlgbr,cxlgtr,dlg,dsg,dsgf,lam,lmg,\ +stam,stmg,tbegin,tbeginc") (const_int 1)] (const_int 0))) (define_attr "z15_groupalone" "" (cond [(eq_attr "mnemonic" "alc,alcg,alcgr,alcr,axbr,axtr,clc,cxbr,\ -cxtr,dlgr,dlr,dr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ -lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,m,madb,maeb,maebr,mfy,mg,mgrk,\ -ml,mlg,mlgr,mlr,mr,msdb,mseb,msebr,mvc,mxbr,mxtr,nc,oc,ppa,sfpc,slb,slbg,\ +cxtr,dlgr,dsgfr,dsgr,dxbr,dxtr,fixbr,fixbra,fixtr,flogr,lcxbr,lnxbr,\ +lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,madb,maeb,maebr,mg,mgrk,\ +mlg,mlgr,msdb,mseb,msebr,mvc,mxbr,mxtr,nc,oc,ppa,sfpc,slb,slbg,\ slbgr,slbr,sqxbr,sxbr,sxtr,tabort,tcxb,tdcxt,tend,xc,kxbr,kxtr") (const_int 1)] (const_int 0))) @@ -165,8 +165,8 @@ llhr,llihf,llihh,llihl,llilf,llilh,llill,lndfr,lngr,lnr,lpdfr,lpgr,lpr,lr,\ lrv,lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,lzdr,lzer,n,ng,ngr,\ ngrk,nihf,nihh,nihl,nilf,nilh,nill,nop,nopr,nr,nrk,ny,o,og,ogr,ogrk,oihf,\ oihh,oihl,oilf,oilh,oill,or,ork,oy,pfpo,risbg,risbgn,rll,rllg,rnsbg,rosbg,\ -s,sg,sgr,sgrk,sl,sldl,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,\ -sllk,slr,slrk,sly,sr,sra,srag,srak,srda,srdl,srk,srl,srlg,srlk,sy,tm,tmh,\ +s,sg,sgr,sgrk,sl,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,\ +sllk,slr,slrk,sly,sr,sra,srag,srak,srk,srl,srlg,srlk,sy,tm,tmh,\ tmhh,tmhl,tml,tmlh,tmll,tmy,vlr,vlvgb,vlvgf,vlvgg,vlvgh,x,xg,xgr,xgrk,xihf,\ xilf,xr,xrk,xy")) "nothing") @@ -202,8 +202,8 @@ xiy,vfkesb,vfkedb,wfkexb,vfkhsb,vfkhdb,wfkhxb,vfkhesb,vfkhedb,wfkhexb")) (define_insn_reservation "z15_2" 2 (and (eq_attr "cpu" "z15") (eq_attr "mnemonic" "cdb,cdbr,ceb,cebr,ear,ipm,l,lcbb,lcdbr,lcebr,ld,\ -lde,ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lm,\ -lmg,lmy,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ +lde,ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,\ +lmg,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,tcdb,tceb,\ vceqbs,vceqfs,vceqgs,vceqhs,vchbs,vchfs,vchgs,vchhs,vchlbs,vchlfs,vchlgs,\ vchlhs,vfcedbs,vfcesbs,vfchdbs,vfchedbs,vfchesbs,vfchsbs,vfeeb,vfeef,vfeeh,\ vfeneb,vfenef,vfeneh,vfenezb,vfenezf,vfenezh,vftcidb,vftcisb,vistrb,vistrf,\ @@ -214,7 +214,7 @@ wfcdb,wfcexbs,wfchexbs,wfchxbs,wfcsb,keb,kebr,kdb,kdbr,wfkdb,wfksb")) (define_insn_reservation "z15_3" 3 (and (eq_attr "cpu" "z15") -(eq_attr "mnemonic" "cds,cdsy,mgh,mghi,mh,mhi,mhy,std,stdy,ste,stey,\ +(eq_attr "mnemonic" "mgh,mghi,mh,mhi,mhy,std,stdy,ste,stey,\ vcksm,vfeezbs,vfeezfs,vfeezhs,vgfmab,vgfmaf,vgfmag,vgfmah,vgfmb,vgfmf,vgfmg,\ vgfmh,vistrbs,vistrfs,vistrhs,vl,vlbb,vll,vlrlr,vmaeb,vmaef,vmaeh,vmahb,\ vmahf,vmahh,vmalb,vmaleb,vmalef,vmaleh,vmalf,vmalhb,vmalhf,vmalhh,vmalhw,\ @@ -232,7 +232,7 @@ tbeginc,tend,vst,vstef,vsteg,vstl,vstrl,vstrlr,xc")) "nothing") (and (eq_attr "cpu" "z15") (eq_attr "mnemonic" "adb,adbr,aeb,aebr,alc,alcg,alcgr,alcr,cs,csg,\ csy,fidbr,fidbra,fiebr,fiebra,ldeb,ldebr,ledbr,madbr,mdb,mdbr,meeb,meebr,\ -msdbr,msrkc,sdb,sdbr,seb,sebr,slb,slbg,slbgr,slbr,stm,stmg,stmy,vfadb,vfasb,\ +msdbr,msrkc,sdb,sdbr,seb,sebr,slb,slbg,slbgr,slbr,stmg,vfadb,vfasb,\ vfidb,vfisb,vfmadb,vfmasb,vfmdb,vfmsb,vfmsdb,vfmssb,vfnmadb,vfnmasb,vfnmsdb,\ vfnmssb,vfsdb,vfssb,vldeb,vledb,vmslg,wfadb,wfasb,wfidb,wfisb,wflld,wfmadb,\ wfmasb,wfmdb,wfmsb,wfmsdb,wfmssb,wfsdb,wfssb,wldeb,wledb")) "nothing") @@ -253,7 +253,7 @@ tdcet,vgef,vgeg,kdtr")) "nothing") (define_insn_reservation "z15_9" 9 (and (eq_attr "cpu" "z15") (eq_attr "mnemonic" "cdfbr,cdgbr,cdlfbr,cdlgbr,cefbr,cegbr,celfbr,\ -celgbr,cxfbr,cxgbr,cxlfbr,cxlgbr,m,madb,maeb,maebr,mfy,ml,mlr,mr,msdb,mseb,\ +celgbr,cxfbr,cxgbr,cxlfbr,cxlgbr,madb,maeb,maebr,msdb,mseb,\ msebr,stam,wfaxb,wfixb,wfsxb")) "nothing") (define_insn_reservation "z15_10" 10 @@ -286,7 +286,7 @@ ltxbr,ltxtr,lxdtr,sxbr,sxtr")) "nothing") (define_insn_reservation "z15_20" 20 (and (eq_attr "cpu" "z15") (eq_attr "mnemonic" "cdgtr,cdlgtr,cgdtr,cgxtr,clfdtr,clfxtr,clgdtr,\ -clgxtr,cxgtr,cxlgtr,d,ddb,ddbr,ddtr,deb,debr,dl,dlg,dlgr,dlr,dr,dsg,dsgf,\ +clgxtr,cxgtr,cxlgtr,ddb,ddbr,ddtr,deb,debr,dlg,dlgr,dsg,dsgf,\ dsgfr,dsgr,dxbr,dxtr,efpc,mdtr,mxbr,mxtr,sqdb,sqdbr,sqeb,sqebr,sqxbr,vfddb,\ vfdsb,vfsqdb,vfsqsb,wfddb,wfdsb,wfdxb,wfmaxb,wfmsxb,wfmxb,wfnmaxb,wfnmsxb,\ wfsqdb,wfsqxb")) "nothing") diff --git a/gcc/config/s390/9175.md b/gcc/config/s390/9175.md index e39da829ede..9d770092a30 100644 --- a/gcc/config/s390/9175.md +++ b/gcc/config/s390/9175.md @@ -31,14 +31,14 @@ icmh,icmy,icy,iihf,iilf,ipm,la,larl,lay,lb,lbr,lcgfr,lcgr,lcr,lgb,lgbr,lgf,\ lgfi,lgfr,lgfrl,lgh,lghi,lghr,lghrl,lgr,lh,lhi,lhr,lhrl,lhy,llcr,llgcr,llgfr,\ llghr,llgtr,llhr,llihf,llihh,llihl,llilf,llilh,llill,llxab,llxaf,llxag,llxah,\ llxaq,lngfr,lngr,lnr,loc,locg,locghi,locgr,lochi,locr,lpgfr,lpgr,lpr,lr,lrv,\ -lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,lxab,lxaf,lxag,lxah,lxaq,m,mfy,\ -mg,mgh,mghi,mgrk,mh,mhi,mhy,ml,mlg,mlgr,mlr,mr,ms,msc,msfi,msg,msgc,msgf,msgfi,\ +lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,lxab,lxaf,lxag,lxah,lxaq,\ +mg,mgh,mghi,mgrk,mh,mhi,mhy,mlg,mlgr,ms,msc,msfi,msg,msgc,msgf,msgfi,\ msgfr,msgr,msgrkc,msr,msrkc,msy,n,ncgrk,ncrk,ng,ngr,ngrk,nihf,nihh,nihl,nilf,\ nilh,nill,nngrk,nnrk,nogrk,nork,nr,nrk,nxgrk,nxrk,ny,o,ocgrk,ocrk,og,ogr,ogrk,\ oihf,oihh,oihl,oilf,oilh,oill,or,ork,oy,pfpo,popcnt,risbg,risbgn,rll,rllg,\ rnsbg,rosbg,rxsbg,s,selgr,selr,sg,sgf,sgfr,sgh,sgr,sgrk,sh,shy,sl,slb,slbg,\ -slbgr,slbr,sldl,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,sllk,slr,slrk,\ -sly,sr,sra,srag,srak,srda,srdl,srk,srl,srlg,srlk,sy,x,xg,xgr,xgrk,xihf,xilf,xr,\ +slbgr,slbr,slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,sllk,slr,slrk,\ +sly,sr,sra,srag,srak,srk,srl,srlg,srlk,sy,x,xg,xgr,xgrk,xihf,xilf,xr,\ xrk,xy") (const_int 1)] (const_int 0))) @@ -57,12 +57,12 @@ xiy") (const_int 1)] (const_int 0))) (define_attr "z17_unit_fxd" "" - (cond [(eq_attr "mnemonic" "dlgr,dlr,dr,dsgfr,dsgr") + (cond [(eq_attr "mnemonic" "dlgr,dsgfr,dsgr") (const_int 1)] (const_int 0))) (define_attr "z17_unit_lsu" "" (cond [(eq_attr "mnemonic" "clc,ear,l,lam,lcbb,ld,lde,ldy,lg,lgrl,llc,llgc,\ -llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lm,lmg,lmy,lpq,lrl,ly,mvcrl,sar,sfpc,\ +llgf,llgfrl,llgh,llghrl,llgt,llh,llhrl,lmg,lpq,lrl,ly,mvcrl,sar,sfpc,\ tabort,vl,vlbb,vlbrf,vlbrg,vlbrh,vlbrq,vlbrrepf,vlbrrepg,vlbrreph,vlerf,vlerg,\ vlerh,vll,vllebrzf,vllebrzg,vllebrzh,vllezb,vllezf,vllezg,vllezh,vllezlf,\ vlrepb,vlrepf,vlrepg,vlreph,vlrl,vlrlr") @@ -127,23 +127,23 @@ mvc,nc,oc,rnsbg,rosbg,rxsbg,stpq,vgef,vgeg,vscef,vsceg,vsteb,vstebrh,vsteh,xc") (const_int 1)] (const_int 0))) (define_attr "z17_expanded" "" - (cond [(eq_attr "mnemonic" "cds,cdsg,cdsy,cxfbr,cxftr,cxgbr,cxgtr,cxlfbr,\ -cxlftr,cxlgbr,cxlgtr,d,dl,dlg,dsg,dsgf,lam,lm,lmg,lmy,sldl,srda,srdl,stam,stm,\ -stmg,stmy,tbegin,tbeginc") + (cond [(eq_attr "mnemonic" "cdsg,cxfbr,cxftr,cxgbr,cxgtr,cxlfbr,\ +cxlftr,cxlgbr,cxlgtr,dlg,dsg,dsgf,lam,lmg,stam,\ +stmg,tbegin,tbeginc") (const_int 1)] (const_int 0))) (define_attr "z17_groupalone" "" (cond [(eq_attr "mnemonic" "alc,alcg,alcgr,alcr,axbr,axtr,clc,cxbr,cxfbr,\ -cxftr,cxgbr,cxgtr,cxlfbr,cxlftr,cxlgbr,cxlgtr,cxtr,d,dl,dlg,dlgr,dlr,dr,dsg,\ +cxftr,cxgbr,cxgtr,cxlfbr,cxlftr,cxlgbr,cxlgtr,cxtr,dlg,dlgr,dsg,\ dsgf,dsgfr,dsgr,dxbr,dxtr,ex,exrl,fixbr,fixbra,fixtr,flogr,kxbr,kxtr,lcxbr,\ -lnxbr,lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,m,madb,maeb,maebr,mfy,mg,\ -mgrk,ml,mlg,mlgr,mlr,mr,msdb,mseb,msebr,mvc,mvcrl,mxbr,mxtr,nc,oc,ppa,sfpc,slb,\ +lnxbr,lpxbr,ltxbr,ltxtr,lxdb,lxdbr,lxdtr,lxeb,lxebr,madb,maeb,maebr,mg,\ +mgrk,mlg,mlgr,msdb,mseb,msebr,mvc,mvcrl,mxbr,mxtr,nc,oc,ppa,sfpc,slb,\ slbg,slbgr,slbr,sqxbr,sxbr,sxtr,tabort,tbegin,tbeginc,tcxb,tdcxt,tend,xc") (const_int 1)] (const_int 0))) (define_attr "z17_endgroup" "" (cond [(eq_attr "mnemonic" "bas,basr,bcr,br,bras,brasl,cdsg,clfebr,cs,csg,csy,\ -efpc,ex,exrl,ipm,lam,lpq,lxr,nopr,sldl,srda,srdl,stam,stm,stmg,stmy,tbegin,\ +efpc,ex,exrl,ipm,lam,lpq,lxr,nopr,stam,stmg,tbegin,\ tbeginc") (const_int 1)] (const_int 0))) @@ -173,9 +173,9 @@ llcr,llgcr,llgfr,llghr,llgtr,llhr,llihf,llihh,llihl,llilf,llilh,llill,lndfr,\ lngr,lnr,lpdfr,lpgr,lpr,lr,lrv,lrvg,lrvgr,lrvh,lrvr,lt,ltg,ltgf,ltgfr,ltgr,ltr,\ lzdr,lzer,n,ncgrk,ncrk,ng,ngr,ngrk,nihf,nihh,nihl,nilf,nilh,nill,nngrk,nnrk,\ nogrk,nop,nopr,nork,nr,nrk,nxgrk,nxrk,ny,o,ocgrk,ocrk,og,ogr,ogrk,oihf,oihh,\ -oihl,oilf,oilh,oill,or,ork,oy,pfpo,risbg,risbgn,rll,rllg,s,sg,sgr,sgrk,sl,sldl,\ +oihl,oilf,oilh,oill,or,ork,oy,pfpo,risbg,risbgn,rll,rllg,s,sg,sgr,sgrk,sl,\ slfi,slg,slgf,slgfi,slgfr,slgr,slgrk,sll,sllg,sllk,slr,slrk,sly,sr,sra,srag,\ -srak,srda,srdl,srk,srl,srlg,srlk,sy,tm,tmh,tmhh,tmhl,tml,tmlh,tmll,tmy,vlr,\ +srak,srk,srl,srlg,srlk,sy,tm,tmh,tmhh,tmhl,tml,tmlh,tmll,tmy,vlr,\ vlvgb,vlvgf,vlvgg,vlvgh,x,xg,xgr,xgrk,xihf,xilf,xr,xrk,xy")) "nothing") (define_insn_reservation "z17_1" 1 @@ -217,7 +217,7 @@ xi,xiy")) "nothing") (and (eq_attr "cpu" "z17") (eq_attr "mnemonic" "cdb,cdbr,ceb,cebr,clzg,ctzg,ear,ipm,kdb,kdbr,keb,kebr,l,\ lcbb,lcdbr,lcebr,ld,lde,ldy,lg,lgdr,lgrl,llc,llgc,llgf,llgfrl,llgh,llghrl,llgt,\ -llh,llhrl,lm,lmg,lmy,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,\ +llh,llhrl,lmg,lndbr,lnebr,lpdbr,lpebr,lrl,ltdbr,ltebr,ly,popcnt,sar,\ tcdb,tceb,vfeeb,vfeef,vfeeh,vfeezbs,vfeezfs,vfeezhs,vfeneb,vfenef,vfeneh,\ vfenezb,vfenezf,vfenezh,vftcidb,vftcisb,vistrb,vistrbs,vistrf,vistrfs,vistrh,\ vistrhs,vlbrrepf,vlbrrepg,vlbrreph,vlgvb,vlgvf,vlgvg,vlgvh,vllebrzf,vllebrzg,\ @@ -226,7 +226,7 @@ vlvgp,wfcdb,wfcsb,wfcxb,wfkdb,wfksb,wfkxb,wftcixb")) "nothing") (define_insn_reservation "z17_3" 3 (and (eq_attr "cpu" "z17") - (eq_attr "mnemonic" "bdepg,bextg,cds,cdsy,mgh,mghi,mh,mhi,mhy,ms,msc,msfi,msg,\ + (eq_attr "mnemonic" "bdepg,bextg,mgh,mghi,mh,mhi,mhy,ms,msc,msfi,msg,\ msgc,msgf,msgfi,msgfr,msgr,msgrkc,msr,msrkc,msy,std,stdy,ste,stey,vcksm,vgfmab,\ vgfmaf,vgfmag,vgfmah,vgfmb,vgfmf,vgfmg,vgfmh,vl,vlbb,vlbrf,vlbrg,vlbrh,vlbrq,\ vlerf,vlerg,vlerh,vll,vlrlr,vmaeb,vmaef,vmaeg,vmaeh,vmahb,vmahf,vmahg,vmahh,\ @@ -247,7 +247,7 @@ vstrlr")) "nothing") (and (eq_attr "cpu" "z17") (eq_attr "mnemonic" "adb,adbr,aeb,aebr,alc,alcg,alcgr,alcr,cs,csg,csy,fidbr,\ fidbra,fiebr,fiebra,ldeb,ldebr,ledbr,madbr,mdb,mdbr,meeb,meebr,msdbr,sdb,sdbr,\ -seb,sebr,slb,slbg,slbgr,slbr,stm,stmg,stmy,vcdgb,vcdlgb,vcefb,vcelfb,vcfeb,\ +seb,sebr,slb,slbg,slbgr,slbr,stmg,vcdgb,vcdlgb,vcefb,vcelfb,vcfeb,\ vcgdb,vclfeb,vclgdb,vldeb,vledb,vmslg,wcdgb,wcdlgb,wcefb,wcelfb,wcfeb,wcgdb,\ wclfeb,wclgdb,wflld,wflrx,wldeb,wledb")) "nothing") @@ -263,8 +263,8 @@ wfsdb,wfssb,wfsxb")) "nothing") (define_insn_reservation "z17_8" 8 (and (eq_attr "cpu" "z17") - (eq_attr "mnemonic" "cdgtr,cdlgtr,cdsg,cxgtr,cxlgtr,flogr,lpq,m,mfy,mg,mgrk,\ -ml,mlg,mlgr,mlr,mr,stpq,vsteb,vstebrh,vsteh")) "nothing") + (eq_attr "mnemonic" "cdgtr,cdlgtr,cdsg,cxgtr,cxlgtr,flogr,lpq,mg,mgrk,\ +mlg,mlgr,stpq,vsteb,vstebrh,vsteh")) "nothing") (define_insn_reservation "z17_9" 9 (and (eq_attr "cpu" "z17") @@ -273,7 +273,7 @@ maeb,maebr,msdb,mseb,msebr,stam")) "nothing") (define_insn_reservation "z17_10" 10 (and (eq_attr "cpu" "z17") - (eq_attr "mnemonic" "cgdtr,cgxtr,clfdtr,clfxtr,clgdtr,clgxtr,d,dl,dlg,dsg,\ + (eq_attr "mnemonic" "cgdtr,cgxtr,clfdtr,clfxtr,clgdtr,clgxtr,dlg,dsg,\ dsgf,efpc,lxdb,lxdbr,lxeb,lxebr,vscef,vsceg")) "nothing") (define_insn_reservation "z17_11" 11 @@ -307,7 +307,7 @@ lcxbr,lnxbr,lpxbr,ltxbr,ltxtr,lxdtr,sxbr,sxtr")) "nothing") (define_insn_reservation "z17_20" 20 (and (eq_attr "cpu" "z17") - (eq_attr "mnemonic" "ddb,ddbr,ddtr,deb,debr,dlgr,dlr,dr,dsgfr,dsgr,dxbr,dxtr,\ + (eq_attr "mnemonic" "ddb,ddbr,ddtr,deb,debr,dlgr,dsgfr,dsgr,dxbr,dxtr,\ mdtr,mvc,mxbr,mxtr,sqdb,sqdbr,sqeb,sqebr,sqxbr,vdf,vdg,vdlf,vdlg,vdlq,vdq,\ vfddb,vfdsb,vfmadb,vfmasb,vfmdb,vfmsb,vfmsdb,vfmssb,vfnmadb,vfnmasb,vfnmsdb,\ vfnmssb,vfsqdb,vfsqsb,vrf,vrg,vrlf,vrlg,vrlq,vrq,wfddb,wfdsb,wfdxb,wfmadb,\ diff --git a/gcc/config/s390/constraints.md b/gcc/config/s390/constraints.md index 62ea3013ff4..be57b43b001 100644 --- a/gcc/config/s390/constraints.md +++ b/gcc/config/s390/constraints.md @@ -583,8 +583,8 @@ (match_test "s390_mem_constraint (\"ZT\", op)")) (define_constraint "ZL" - "LARL operand when in 64-bit mode, otherwise nothing." - (match_test "TARGET_64BIT && larl_operand (op, VOIDmode)")) + "LARL operand." + (match_test "larl_operand (op, VOIDmode)")) ;; This constraint must behave like "i", in particular, the matching values ;; must never be placed into registers or memory by diff --git a/gcc/config/s390/driver-native.cc b/gcc/config/s390/driver-native.cc index 07333249224..8ddb51ced1e 100644 --- a/gcc/config/s390/driver-native.cc +++ b/gcc/config/s390/driver-native.cc @@ -48,12 +48,9 @@ s390_host_detect_local_cpu (int argc, const char **argv) unsigned int has_features; unsigned int has_processor; unsigned int is_cpu_z9_109 = 0; - unsigned int has_highgprs = 0; unsigned int has_dfp = 0; unsigned int has_te = 0; unsigned int has_vx = 0; - unsigned int has_opt_esa_zarch = 0; - int i; if (argc < 1) return NULL; @@ -61,9 +58,6 @@ s390_host_detect_local_cpu (int argc, const char **argv) arch = strcmp (argv[0], "arch") == 0; if (!arch && strcmp (argv[0], "tune")) return NULL; - for (i = 1; i < argc; i++) - if (strcmp (argv[i], "mesa_mzarch") == 0) - has_opt_esa_zarch = 1; f = fopen ("/proc/cpuinfo", "r"); if (f == NULL) @@ -158,8 +152,6 @@ s390_host_detect_local_cpu (int argc, const char **argv) has_te = 1; else if (i == 2 && startswith (p, "vx")) has_vx = 1; - else if (i == 8 && startswith (p, "highgprs")) - has_highgprs = 1; p += i; } has_features = 1; @@ -175,7 +167,6 @@ s390_host_detect_local_cpu (int argc, const char **argv) { const char *opt_htm = ""; const char *opt_vx = ""; - const char *opt_esa_zarch = ""; /* We may switch off these cpu features but never switch the on explicitly. This overrides options specified on the command line. */ @@ -183,12 +174,7 @@ s390_host_detect_local_cpu (int argc, const char **argv) opt_htm = " -mno-htm"; if (!has_vx) opt_vx = " -mno-vx"; - /* However, we set -mzarch only if neither -mzarch nor -mesa are used on - the command line. This allows the user to switch to -mesa manually. - */ - if (!has_opt_esa_zarch && has_highgprs) - opt_esa_zarch = " -mzarch"; - options = concat (options, opt_htm, opt_vx, opt_esa_zarch, NULL); + options = concat (options, opt_htm, opt_vx, NULL); } if (has_dfp && is_cpu_z9_109) cpu = "z9-ec"; diff --git a/gcc/config/s390/htmxlintrin.h b/gcc/config/s390/htmxlintrin.h index 74182fc89c0..9a9e00f82db 100644 --- a/gcc/config/s390/htmxlintrin.h +++ b/gcc/config/s390/htmxlintrin.h @@ -167,11 +167,7 @@ extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artific __TM_failure_address (void* const tdb_ptr) { struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr; -#ifdef __s390x__ return tdb->atia; -#else - return tdb->atia & 0xffffffff; -#endif } extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h index b836d566a7c..b95bb48f405 100644 --- a/gcc/config/s390/linux.h +++ b/gcc/config/s390/linux.h @@ -24,14 +24,10 @@ along with GCC; see the file COPYING3. If not see /* Target specific type definitions. */ -/* For 31 bit our size type differs from most other targets (where it - is "unsigned int"). The difference tends to cause trouble e.g.: - Glibc BZ #16712, GCC BZ #79358 but cannot be changed due to ABI - issues. */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" #undef PTRDIFF_TYPE -#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") +#define PTRDIFF_TYPE "long int" #undef WCHAR_TYPE #define WCHAR_TYPE "int" @@ -51,10 +47,13 @@ along with GCC; see the file COPYING3. If not see /* Target specific assembler settings. */ /* Rewrite -march=arch* options to the original CPU name in order to - make it work with older binutils. */ + make it work with older binutils. The spec is incomplete in the sense that + it passes -march=z* but filters -march=archX with X>11 out. However, + starting with binutils 2.22 the .machine pseudo-op is supported which + overrides command line option -march anyway. */ #undef ASM_SPEC #define ASM_SPEC \ - "%{m31&m64}%{mesa&mzarch}%{march=z*}" \ + "%{march=z*}" \ "%{march=arch5:-march=z900}" \ "%{march=arch6:-march=z990}" \ "%{march=arch7:-march=z9-ec}" \ @@ -66,30 +65,22 @@ along with GCC; see the file COPYING3. If not see /* Target specific linker settings. */ -#ifdef DEFAULT_TARGET_64BIT #define MULTILIB_DEFAULTS { "m64" } -#else -#define MULTILIB_DEFAULTS { "m31" } -#endif -#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" -#undef MUSL_DYNAMIC_LINKER32 -#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" #undef MUSL_DYNAMIC_LINKER64 #define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" #undef LINK_SPEC #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ + "-m elf64_s390 \ %{shared:-shared} \ %{!shared: \ %{static:-static} \ %{!static:%{!static-pie: \ %{rdynamic:-export-dynamic} \ - %{m31:-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "} \ - %{m64:-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}}} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \ %{static-pie:-static -pie --no-dynamic-linker -z text}" #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" @@ -97,9 +88,7 @@ along with GCC; see the file COPYING3. If not see #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #ifdef TARGET_LIBC_PROVIDES_SSP -/* s390 glibc provides __stack_chk_guard in 0x14(tp), - s390x glibc provides it at 0x28(tp). */ -#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14) +#define TARGET_THREAD_SSP_OFFSET 0x28 #endif /* Define if long doubles should be mangled as 'g'. */ diff --git a/gcc/config/s390/predicates.md b/gcc/config/s390/predicates.md index 2c29e78c241..b5e6da0f094 100644 --- a/gcc/config/s390/predicates.md +++ b/gcc/config/s390/predicates.md @@ -97,17 +97,12 @@ }) ;; Return true if OP is a valid operand for the BRAS instruction. -;; Allow SYMBOL_REFs and @PLT stubs. (define_special_predicate "bras_sym_operand" - (ior (and (match_code "symbol_ref") - (ior (match_test "!flag_pic") - (match_test "SYMBOL_REF_LOCAL_P (op)") - (and (match_test "TARGET_64BIT") - (match_test "SYMBOL_REF_FUNCTION_P (op)")))) - (and (match_code "const") - (and (match_test "GET_CODE (XEXP (op, 0)) == UNSPEC") - (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_PLT31"))))) + (and (match_code "symbol_ref") + (ior (match_test "!flag_pic") + (match_test "SYMBOL_REF_LOCAL_P (op)") + (match_test "SYMBOL_REF_FUNCTION_P (op)")))) ;; Return true if OP is a PLUS that is not a legitimate ;; operand for the LA instruction. @@ -199,9 +194,6 @@ if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_GOTENT) return true; - if (GET_CODE (op) == UNSPEC - && XINT (op, 1) == UNSPEC_PLT31) - return true; if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_INDNTPOFF) return true; diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def index d3d581792f3..90b52ba204a 100644 --- a/gcc/config/s390/s390-builtins.def +++ b/gcc/config/s390/s390-builtins.def @@ -718,8 +718,8 @@ OB_DEF_VAR (s390_vec_scatter_element_u64,s390_vsceg, 0, OB_DEF_VAR (s390_vec_scatter_element_flt,s390_vscef, B_VXE, O4_U2, BT_OV_VOID_V4SF_UV4SI_FLTPTR_ULONGLONG) OB_DEF_VAR (s390_vec_scatter_element_dbl,s390_vsceg, 0, O4_U1, BT_OV_VOID_V2DF_UV2DI_DBLPTR_ULONGLONG) -B_DEF (s390_vscef, vec_scatter_elementv4si,0, B_VX, O4_U2, BT_FN_VOID_UV4SI_UV4SI_UINTPTR_ULONGLONG) -B_DEF (s390_vsceg, vec_scatter_elementv2di,0, B_VX, O4_U1, BT_FN_VOID_UV2DI_UV2DI_ULONGLONGPTR_ULONGLONG) +B_DEF (s390_vscef, vec_scatter_elementv4si_DI,0, B_VX, O4_U2, BT_FN_VOID_UV4SI_UV4SI_UINTPTR_ULONGLONG) +B_DEF (s390_vsceg, vec_scatter_elementv2di_DI,0, B_VX, O4_U1, BT_FN_VOID_UV2DI_UV2DI_ULONGLONGPTR_ULONGLONG) /* First two operands are swapped in s390-c.cc */ OB_DEF (s390_vec_sel, s390_vec_sel_b8_a, s390_vec_sel_dbl_b, B_VX, BT_FN_OV4SI_OV4SI_OV4SI_OV4SI) diff --git a/gcc/config/s390/s390-c.cc b/gcc/config/s390/s390-c.cc index db9a88ee805..3aa27c9034c 100644 --- a/gcc/config/s390/s390-c.cc +++ b/gcc/config/s390/s390-c.cc @@ -420,10 +420,8 @@ s390_cpu_cpp_builtins (cpp_reader *pfile) cpp_assert (pfile, "cpu=s390"); cpp_assert (pfile, "machine=s390"); cpp_define (pfile, "__s390__"); - if (TARGET_ZARCH) - cpp_define (pfile, "__zarch__"); - if (TARGET_64BIT) - cpp_define (pfile, "__s390x__"); + cpp_define (pfile, "__zarch__"); + cpp_define (pfile, "__s390x__"); if (TARGET_LONG_DOUBLE_128) cpp_define (pfile, "__LONG_DOUBLE_128__"); cl_target_option_save (&opts, &global_options, &global_options_set); diff --git a/gcc/config/s390/s390-d.cc b/gcc/config/s390/s390-d.cc index 00bee9dd260..ac9abedce64 100644 --- a/gcc/config/s390/s390-d.cc +++ b/gcc/config/s390/s390-d.cc @@ -30,13 +30,8 @@ along with GCC; see the file COPYING3. If not see void s390_d_target_versions (void) { - if (TARGET_64BIT) - { - d_add_builtin_version ("S390X"); - d_add_builtin_version ("SystemZ"); - } - else - d_add_builtin_version ("S390"); + d_add_builtin_version ("S390X"); + d_add_builtin_version ("SystemZ"); if (TARGET_SOFT_FLOAT) d_add_builtin_version ("D_SoftFloat"); diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index d57499a48e6..4ec9a53f7d7 100644 --- a/gcc/config/s390/s390.cc +++ b/gcc/config/s390/s390.cc @@ -398,11 +398,9 @@ struct s390_address #define cfun_frame_layout (cfun->machine->frame_layout) #define cfun_save_high_fprs_p (!!cfun_frame_layout.high_fprs) -#define cfun_save_arg_fprs_p (!!(TARGET_64BIT \ - ? cfun_frame_layout.fpr_bitmap & 0x0f \ - : cfun_frame_layout.fpr_bitmap & 0x03)) +#define cfun_save_arg_fprs_p (!!(cfun_frame_layout.fpr_bitmap & 0x0f)) #define cfun_gprs_save_area_size ((cfun_frame_layout.last_save_gpr_slot - \ - cfun_frame_layout.first_save_gpr_slot + 1) * UNITS_PER_LONG) + cfun_frame_layout.first_save_gpr_slot + 1) * UNITS_PER_WORD) #define cfun_set_fpr_save(REGNO) (cfun->machine->frame_layout.fpr_bitmap |= \ (1 << (REGNO - FPR0_REGNUM))) #define cfun_fpr_save_p(REGNO) (!!(cfun->machine->frame_layout.fpr_bitmap & \ @@ -412,7 +410,7 @@ struct s390_address /* Number of GPRs and FPRs used for argument passing. */ #define GP_ARG_NUM_REG 5 -#define FP_ARG_NUM_REG (TARGET_64BIT? 4 : 2) +#define FP_ARG_NUM_REG 4 #define VEC_ARG_NUM_REG 8 /* Return TRUE if GPR REGNO is supposed to be restored in the function @@ -713,10 +711,7 @@ s390_init_builtins (void) uint64_t data type. What we want is c_uint64_type_node from c-common.cc. But since backend code is not supposed to interface with the frontend we recreate it here. */ - if (TARGET_64BIT) - c_uint64_type_node = long_unsigned_type_node; - else - c_uint64_type_node = long_long_unsigned_type_node; + c_uint64_type_node = long_unsigned_type_node; #undef DEF_TYPE #define DEF_TYPE(INDEX, NODE, CONST_P) \ @@ -1358,34 +1353,29 @@ s390_got_symbol (void) static scalar_int_mode s390_libgcc_cmp_return_mode (void) { - return TARGET_64BIT ? DImode : SImode; + return DImode; } static scalar_int_mode s390_libgcc_shift_count_mode (void) { - return TARGET_64BIT ? DImode : SImode; + return DImode; } static scalar_int_mode s390_unwind_word_mode (void) { - return TARGET_64BIT ? DImode : SImode; + return DImode; } /* Return true if the back end supports mode MODE. */ static bool s390_scalar_mode_supported_p (scalar_mode mode) { - /* In contrast to the default implementation reject TImode constants on 31bit - TARGET_ZARCH for ABI compliance. */ - if (!TARGET_64BIT && TARGET_ZARCH && mode == TImode) - return false; - if (DECIMAL_FLOAT_MODE_P (mode)) return default_decimal_float_supported_p (); - if (TARGET_64BIT && TARGET_Z10 && mode == HFmode) + if (TARGET_Z10 && mode == HFmode) return true; return default_scalar_mode_supported_p (mode); @@ -1665,8 +1655,7 @@ s390_select_ccmode (enum rtx_code code, rtx op0, rtx op1) if (GET_CODE (op0) == PLUS && GET_CODE (XEXP (op0, 1)) == CONST_INT && (CONST_OK_FOR_K (INTVAL (XEXP (op0, 1))) || (CONST_OK_FOR_CONSTRAINT_P (INTVAL (XEXP (op0, 1)), 'O', "Os") - /* Avoid INT32_MIN on 32 bit. */ - && (!TARGET_ZARCH || INTVAL (XEXP (op0, 1)) != -0x7fffffff - 1)))) + && INTVAL (XEXP (op0, 1)) != -0x7fffffff - 1))) { if (INTVAL (XEXP((op0), 1)) < 0) return CCANmode; @@ -3598,8 +3587,7 @@ s390_loadrelative_operand_p (rtx addr, rtx *symref, HOST_WIDE_INT *addend) if (GET_CODE (addr) == SYMBOL_REF || (GET_CODE (addr) == UNSPEC - && (XINT (addr, 1) == UNSPEC_GOTENT - || XINT (addr, 1) == UNSPEC_PLT31))) + && XINT (addr, 1) == UNSPEC_GOTENT)) { if (symref) *symref = addr; @@ -4173,30 +4161,13 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, { rtx left = XEXP (x, 0); rtx right = XEXP (x, 1); - if (TARGET_ZARCH) - { - if (GET_CODE (right) == CONST_INT - && CONST_OK_FOR_K (INTVAL (right))) - *total = s390_cost->mghi; - else if (GET_CODE (left) == SIGN_EXTEND) - *total = s390_cost->msgf; - else - *total = s390_cost->msg; /* msgr, msg */ - } - else /* TARGET_31BIT */ - { - if (GET_CODE (left) == SIGN_EXTEND - && GET_CODE (right) == SIGN_EXTEND) - /* mulsidi case: mr, m */ - *total = s390_cost->m; - else if (GET_CODE (left) == ZERO_EXTEND - && GET_CODE (right) == ZERO_EXTEND) - /* umulsidi case: ml, mlr */ - *total = s390_cost->ml; - else - /* Complex calculation is required. */ - *total = COSTS_N_INSNS (40); - } + if (GET_CODE (right) == CONST_INT + && CONST_OK_FOR_K (INTVAL (right))) + *total = s390_cost->mghi; + else if (GET_CODE (left) == SIGN_EXTEND) + *total = s390_cost->msgf; + else + *total = s390_cost->msg; /* msgr, msg */ break; } case E_SFmode: @@ -4255,10 +4226,7 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, { rtx right = XEXP (x, 1); if (GET_CODE (right) == ZERO_EXTEND) /* 64 by 32 bit division */ - if (TARGET_ZARCH) - *total = s390_cost->dsgfr; - else - *total = s390_cost->dr; + *total = s390_cost->dsgfr; else /* 64 by 64 bit division */ *total = s390_cost->dsgr; } @@ -4421,7 +4389,6 @@ tls_symbolic_operand (rtx op) void s390_split_access_reg (rtx reg, rtx *lo, rtx *hi) { - gcc_assert (TARGET_64BIT); gcc_assert (ACCESS_REG_P (reg)); gcc_assert (GET_MODE (reg) == DImode); gcc_assert (!(REGNO (reg) & 1)); @@ -4653,16 +4620,15 @@ legitimate_reload_constant_p (rtx op) return true; /* Accept lliXX operands. */ - if (TARGET_ZARCH - && GET_CODE (op) == CONST_INT - && trunc_int_for_mode (INTVAL (op), word_mode) == INTVAL (op) - && s390_single_part (op, word_mode, HImode, 0) >= 0) + if (GET_CODE (op) == CONST_INT + && trunc_int_for_mode (INTVAL (op), DImode) == INTVAL (op) + && s390_single_part (op, DImode, HImode, 0) >= 0) return true; if (TARGET_EXTIMM && GET_CODE (op) == CONST_INT - && trunc_int_for_mode (INTVAL (op), word_mode) == INTVAL (op) - && s390_single_part (op, word_mode, SImode, 0) >= 0) + && trunc_int_for_mode (INTVAL (op), DImode) == INTVAL (op) + && s390_single_part (op, DImode, SImode, 0) >= 0) return true; /* Accept larl operands. */ @@ -4678,11 +4644,10 @@ legitimate_reload_constant_p (rtx op) /* Accept double-word operands that can be split. */ if (GET_CODE (op) == CONST_WIDE_INT || (GET_CODE (op) == CONST_INT - && trunc_int_for_mode (INTVAL (op), word_mode) != INTVAL (op))) + && trunc_int_for_mode (INTVAL (op), DImode) != INTVAL (op))) { - machine_mode dword_mode = word_mode == SImode ? DImode : TImode; - rtx hi = operand_subword (op, 0, 0, dword_mode); - rtx lo = operand_subword (op, 1, 0, dword_mode); + rtx hi = operand_subword (op, 0, 0, TImode); + rtx lo = operand_subword (op, 1, 0, TImode); return legitimate_reload_constant_p (hi) && legitimate_reload_constant_p (lo); } @@ -4848,7 +4813,7 @@ s390_check_symref_alignment (rtx addr, HOST_WIDE_INT alignment) } if (GET_CODE (symref) == UNSPEC - && alignment <= UNITS_PER_LONG) + && alignment <= UNITS_PER_WORD) return true; return false; @@ -4974,13 +4939,9 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, && s390_class_max_nregs (FP_REGS, mode) == 1))) { if (in_p) - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_la_in : - CODE_FOR_reloadsi_la_in); + sri->icode = CODE_FOR_reloaddi_la_in; else - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_la_out : - CODE_FOR_reloadsi_la_out); + sri->icode = CODE_FOR_reloaddi_la_out; } } @@ -4996,8 +4957,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, && mode == Pmode && (!SYMBOL_REF_P (symref) || !SYMBOL_FLAG_NOTALIGN2_P (symref)) && (offset & 1) == 1) - sri->icode = ((mode == DImode) ? CODE_FOR_reloaddi_larl_odd_addend_z10 - : CODE_FOR_reloadsi_larl_odd_addend_z10); + sri->icode = CODE_FOR_reloaddi_larl_odd_addend_z10; /* Handle all the (mem (symref)) accesses we cannot use the z10 instructions for. */ @@ -5011,12 +4971,8 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, { #define __SECONDARY_RELOAD_CASE(M,m) \ case E_##M##mode: \ - if (TARGET_64BIT) \ - sri->icode = in_p ? CODE_FOR_reload##m##di_toreg_z10 : \ - CODE_FOR_reload##m##di_tomem_z10; \ - else \ - sri->icode = in_p ? CODE_FOR_reload##m##si_toreg_z10 : \ - CODE_FOR_reload##m##si_tomem_z10; \ + sri->icode = in_p ? CODE_FOR_reload##m##di_toreg_z10 : \ + CODE_FOR_reload##m##di_tomem_z10; \ break; switch (GET_MODE (x)) @@ -5070,8 +5026,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, /* LRA can deal with transformation of plus op very well -- so we don't need to prompt LRA in this case. */ if (! lra_in_progress && in_p && s390_plus_operand (x, mode)) - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_plus : CODE_FOR_reloadsi_plus); + sri->icode = CODE_FOR_reloaddi_plus; /* Performing a multiword move from or to memory we have to make sure the second chunk in memory is addressable without causing a displacement @@ -5095,13 +5050,9 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, && s390_class_max_nregs (FP_REGS, mode) > 1)) { if (in_p) - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_la_in : - CODE_FOR_reloadsi_la_in); + sri->icode = CODE_FOR_reloaddi_la_in; else - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_la_out : - CODE_FOR_reloadsi_la_out); + sri->icode = CODE_FOR_reloaddi_la_out; } } @@ -5109,9 +5060,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, copied to r0 compiling with -fPIC. In other cases the target register might be used as temporary (see legitimize_pic_address). */ if (in_p && SYMBOLIC_CONST (x) && flag_pic == 2 && rclass != ADDR_REGS) - sri->icode = (TARGET_64BIT ? - CODE_FOR_reloaddi_PIC_addr : - CODE_FOR_reloadsi_PIC_addr); + sri->icode = CODE_FOR_reloaddi_PIC_addr; /* Either scratch or no register needed. */ return NO_REGS; @@ -5122,9 +5071,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, We need secondary memory to move data between GPRs and FPRs. - With DFP the ldgr lgdr instructions are available. Due to the - different alignment we cannot use them for SFmode. For 31 bit a - 64 bit value in GPR would be a register pair so here we still - need to go via memory. + different alignment we cannot use them for SFmode. - With z13 we can do the SF/SImode moves with vlgvf. Due to the overlapping of FPRs and VRs we still disallow TF/TD modes to be @@ -5141,7 +5088,7 @@ s390_secondary_memory_needed (machine_mode mode, realized via ldgr/lgdr in conjunction with shifts in order satisfy alignment requirements, or via vector loads. Thus, there is no secondary memory needed. */ - if (TARGET_64BIT && TARGET_Z10 && GET_MODE_SIZE (mode) == 2 + if (TARGET_Z10 && GET_MODE_SIZE (mode) == 2 && ((reg_classes_intersect_p (class1, VEC_REGS) && reg_classes_intersect_p (class2, GENERAL_REGS)) || (reg_classes_intersect_p (class2, VEC_REGS) @@ -5151,8 +5098,7 @@ s390_secondary_memory_needed (machine_mode mode, && reg_classes_intersect_p (class2, GENERAL_REGS)) || (reg_classes_intersect_p (class1, GENERAL_REGS) && reg_classes_intersect_p (class2, VEC_REGS))) - && (TARGET_TPF || !TARGET_DFP || !TARGET_64BIT - || GET_MODE_SIZE (mode) != 8) + && (TARGET_TPF || !TARGET_DFP || GET_MODE_SIZE (mode) != 8) && (!TARGET_VX || (SCALAR_FLOAT_MODE_P (mode) && GET_MODE_SIZE (mode) > 8))); } @@ -5282,9 +5228,7 @@ s390_legitimate_address_p (machine_mode mode, rtx addr, bool strict, return true; } -/* Return true if OP is a valid operand for the LA instruction. - In 31-bit, we need to prove that the result is used as an - address, as LA performs only a 31-bit addition. */ +/* Return true if OP is a valid operand for the LA instruction. */ bool legitimate_la_operand_p (rtx op) @@ -5293,7 +5237,7 @@ legitimate_la_operand_p (rtx op) if (!s390_decompose_address (op, &addr)) return false; - return (TARGET_64BIT || addr.pointer); + return true; } /* Return true if it is valid *and* preferable to use LA to @@ -5321,9 +5265,6 @@ preferred_la_operand_p (rtx op1, rtx op2) if (addr.indx && s390_tune >= PROCESSOR_2817_Z196) return false; - if (!TARGET_64BIT && !addr.pointer) - return false; - if (addr.pointer) return true; @@ -5341,10 +5282,7 @@ preferred_la_operand_p (rtx op1, rtx op2) void s390_load_address (rtx dst, rtx src) { - if (TARGET_64BIT) - emit_move_insn (dst, src); - else - emit_insn (gen_force_la_31 (dst, src)); + emit_move_insn (dst, src); } /* Return true if it ok to use SYMBOL_REF in a relative address. */ @@ -5405,9 +5343,7 @@ legitimize_pic_address (rtx orig, rtx reg) if ((GET_CODE (addr) == LABEL_REF || (SYMBOL_REF_P (addr) && s390_rel_address_ok_p (addr)) - || (GET_CODE (addr) == UNSPEC && - (XINT (addr, 1) == UNSPEC_GOTENT - || XINT (addr, 1) == UNSPEC_PLT31))) + || (GET_CODE (addr) == UNSPEC && XINT (addr, 1) == UNSPEC_GOTENT)) && GET_CODE (addend) == CONST_INT) { /* This can be locally addressed. */ @@ -5504,8 +5440,7 @@ legitimize_pic_address (rtx orig, rtx reg) else if (flag_pic == 1) { /* Assume GOT offset is a valid displacement operand (< 4k - or < 512k with z990). This is handled the same way in - both 31- and 64-bit code (@GOT). + or < 512k with z990). lg , sym@GOT(r12) */ if (reload_in_progress || reload_completed) @@ -5566,12 +5501,6 @@ legitimize_pic_address (rtx orig, rtx reg) gcc_unreachable (); break; - /* For @PLT larl is used. This is handled like local - symbol refs. */ - case UNSPEC_PLT31: - gcc_unreachable (); - break; - /* Everything else cannot happen. */ default: gcc_unreachable (); @@ -5611,7 +5540,7 @@ s390_get_thread_pointer (void) { rtx tp = gen_reg_rtx (Pmode); - emit_insn (gen_get_thread_pointer (Pmode, tp)); + emit_insn (gen_get_thread_pointerdi (tp)); mark_reg_pointer (tp, BITS_PER_WORD); @@ -5715,8 +5644,7 @@ legitimize_tls_address (rtx addr, rtx reg) case TLS_MODEL_INITIAL_EXEC: if (flag_pic == 1) { - /* Assume GOT offset < 4k. This is handled the same way - in both 31- and 64-bit code. */ + /* Assume GOT offset < 4k. */ if (reload_in_progress || reload_completed) df_set_regs_ever_live (PIC_OFFSET_TABLE_REGNUM, true); @@ -6329,12 +6257,8 @@ s390_expand_setmem (rtx dst, rtx len, rtx val, rtx min_len_rtx, rtx max_len_rtx) else if (TARGET_MVCLE) { val = force_not_mem (convert_modes (Pmode, QImode, val, 1)); - if (TARGET_64BIT) - emit_insn (gen_setmem_long_di (dst, convert_to_mode (Pmode, len, 1), - val)); - else - emit_insn (gen_setmem_long_si (dst, convert_to_mode (Pmode, len, 1), - val)); + emit_insn (gen_setmem_long_di (dst, convert_to_mode (Pmode, len, 1), + val)); } /* Non-constant length and no loop required. */ @@ -6762,12 +6686,8 @@ s390_expand_vec_strlen (rtx target, rtx string, rtx alignment) s390_load_address (highest_index_to_load_reg, gen_rtx_PLUS (Pmode, highest_index_to_load_reg, const1_rtx)); - if (TARGET_64BIT) - emit_insn (gen_movdicc (str_idx_reg, cond, - highest_index_to_load_reg, str_idx_reg)); - else - emit_insn (gen_movsicc (str_idx_reg, cond, - highest_index_to_load_reg, str_idx_reg)); + emit_insn (gen_movdicc (str_idx_reg, cond, + highest_index_to_load_reg, str_idx_reg)); add_reg_br_prob_note (s390_emit_jump (is_aligned_label, cond), profile_probability::very_unlikely ()); @@ -7108,8 +7028,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) /* Generate INSERT IMMEDIATE (IILL et al). */ /* (set (ze (reg)) (const_int)). */ - if (TARGET_ZARCH - && register_operand (dest, word_mode) + if (register_operand (dest, DImode) && (bitpos % 16) == 0 && (bitsize % 16) == 0 && const_int_operand (src, VOIDmode)) @@ -7129,7 +7048,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) putsize = GET_MODE_BITSIZE (putmode); regpos -= putsize; - emit_move_insn (gen_rtx_ZERO_EXTRACT (word_mode, dest, + emit_move_insn (gen_rtx_ZERO_EXTRACT (DImode, dest, GEN_INT (putsize), GEN_INT (regpos)), gen_int_mode (val, putmode)); @@ -7147,7 +7066,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) if (bitpos == 0 && (bitsize % BITS_PER_UNIT) == 0 && MEM_P (dest) - && (register_operand (src, word_mode) + && (register_operand (src, DImode) || const_int_operand (src, VOIDmode))) { /* Emit standard pattern if possible. */ @@ -7162,7 +7081,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) else if (const_int_operand (src, VOIDmode)) { int size = bitsize / BITS_PER_UNIT; - rtx src_mem = adjust_address (force_const_mem (word_mode, src), + rtx src_mem = adjust_address (force_const_mem (DImode, src), BLKmode, UNITS_PER_WORD - size); @@ -7174,10 +7093,10 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) } /* (set (ze (mem)) (reg)). */ - else if (register_operand (src, word_mode)) + else if (register_operand (src, DImode)) { if (bitsize <= 32) - emit_move_insn (gen_rtx_ZERO_EXTRACT (word_mode, dest, op1, + emit_move_insn (gen_rtx_ZERO_EXTRACT (DImode, dest, op1, const0_rtx), src); else { @@ -7188,10 +7107,10 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) emit_move_insn (adjust_address (dest, SImode, size), gen_lowpart (SImode, src)); set_mem_size (dest, size); - emit_move_insn (gen_rtx_ZERO_EXTRACT (word_mode, dest, + emit_move_insn (gen_rtx_ZERO_EXTRACT (DImode, dest, GEN_INT (stcmh_width), const0_rtx), - gen_rtx_LSHIFTRT (word_mode, src, GEN_INT (32))); + gen_rtx_LSHIFTRT (DImode, src, GEN_INT (32))); } return true; } @@ -8467,7 +8386,6 @@ s390_dwarf_frame_reg_mode (int regno) { machine_mode save_mode = default_dwarf_frame_reg_mode (regno); - /* Make sure not to return DImode for any GPR with -m31 -mzarch. */ if (GENERAL_REGNO_P (regno)) save_mode = Pmode; @@ -8506,7 +8424,7 @@ s390_mangle_type (const_tree type) static bool s390_libgcc_floating_mode_supported_p (scalar_float_mode mode) { - return (TARGET_64BIT && TARGET_Z10 && mode == HFmode) + return (TARGET_Z10 && mode == HFmode) || default_libgcc_floating_mode_supported_p (mode); } @@ -8562,8 +8480,7 @@ s390_delegitimize_address (rtx orig_x) y = XEXP (x, 0); if (GET_CODE (y) == UNSPEC - && (XINT (y, 1) == UNSPEC_GOTENT - || XINT (y, 1) == UNSPEC_PLT31)) + && XINT (y, 1) == UNSPEC_GOTENT) return XVECEXP (y, 0, 0); else return orig_x; @@ -8593,8 +8510,7 @@ s390_delegitimize_address (rtx orig_x) y = XEXP (x, 0); if (GET_CODE (y) == UNSPEC - && (XINT (y, 1) == UNSPEC_GOTENT - || XINT (y, 1) == UNSPEC_PLT31)) + && XINT (y, 1) == UNSPEC_GOTENT) y = XVECEXP (y, 0, 0); else return orig_x; @@ -8701,8 +8617,7 @@ s390_function_num_hotpatch_hw (tree decl, static void s390_asm_output_machine_for_arch (FILE *asm_out_file) { - fprintf (asm_out_file, "\t.machinemode %s\n", - (TARGET_ZARCH) ? "zarch" : "esa"); + fprintf (asm_out_file, "\t.machinemode zarch\n"); fprintf (asm_out_file, "\t.machine \"%s", processor_table[s390_arch].binutils_name); if (S390_USE_ARCHITECTURE_MODIFIERS) @@ -8779,10 +8694,9 @@ s390_asm_output_function_label (FILE *out_file, const char *fname, /* Note: The function label must be aligned so that (a) the bytes of the following nop do not cross a cacheline boundary, and (b) a jump address - (eight bytes for 64 bit targets, 4 bytes for 32 bit targets) can be - stored directly before the label without crossing a cacheline - boundary. All this is necessary to make sure the trampoline code can - be changed atomically. + (eight bytes) can be stored directly before the label without crossing + a cacheline boundary. All this is necessary to make sure the + trampoline code can be changed atomically. This alignment is done automatically using the FOUNCTION_BOUNDARY, but if there are NOPs before the function label, the alignment is placed before them. So it is necessary to duplicate the alignment after the @@ -8847,10 +8761,6 @@ s390_output_addr_const_extra (FILE *file, rtx x) output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@GOTOFF"); return true; - case UNSPEC_PLT31: - output_addr_const (file, XVECEXP (x, 0, 0)); - fprintf (file, "@PLT"); - return true; case UNSPEC_PLTOFF: output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@PLTOFF"); @@ -10570,9 +10480,9 @@ s390_return_addr_rtx (int count, rtx frame ATTRIBUTE_UNUSED) return get_hard_reg_initial_val (Pmode, RETURN_REGNUM); if (TARGET_PACKED_STACK) - offset = -2 * UNITS_PER_LONG; + offset = -2 * UNITS_PER_WORD; else - offset = RETURN_REGNUM * UNITS_PER_LONG; + offset = RETURN_REGNUM * UNITS_PER_WORD; addr = plus_constant (Pmode, frame, offset); addr = memory_address (Pmode, addr); @@ -10591,7 +10501,7 @@ s390_back_chain_rtx (void) if (TARGET_PACKED_STACK) chain = plus_constant (Pmode, stack_pointer_rtx, - STACK_POINTER_OFFSET - UNITS_PER_LONG); + STACK_POINTER_OFFSET - UNITS_PER_WORD); else chain = stack_pointer_rtx; @@ -10743,31 +10653,18 @@ s390_frame_area (int *area_bottom, int *area_top) if (cfun_frame_layout.first_restore_gpr != -1) { b = (cfun_frame_layout.gprs_offset - + cfun_frame_layout.first_restore_gpr * UNITS_PER_LONG); + + cfun_frame_layout.first_restore_gpr * UNITS_PER_WORD); t = b + (cfun_frame_layout.last_restore_gpr - - cfun_frame_layout.first_restore_gpr + 1) * UNITS_PER_LONG; + - cfun_frame_layout.first_restore_gpr + 1) * UNITS_PER_WORD; } - if (TARGET_64BIT && cfun_save_high_fprs_p) + if (cfun_save_high_fprs_p) { b = MIN (b, cfun_frame_layout.f8_offset); t = MAX (t, (cfun_frame_layout.f8_offset + cfun_frame_layout.high_fprs * 8)); } - if (!TARGET_64BIT) - { - if (cfun_fpr_save_p (FPR4_REGNUM)) - { - b = MIN (b, cfun_frame_layout.f4_offset); - t = MAX (t, cfun_frame_layout.f4_offset + 8); - } - if (cfun_fpr_save_p (FPR6_REGNUM)) - { - b = MIN (b, cfun_frame_layout.f4_offset + 8); - t = MAX (t, cfun_frame_layout.f4_offset + 16); - } - } *area_bottom = b; *area_top = t; } @@ -10827,8 +10724,7 @@ s390_register_info_arg_fpr () int min_preserve_fpr = INT_MAX, max_preserve_fpr = -1; int min_fpr, max_fpr; - /* Save the FP argument regs for stdarg. f0, f2 for 31 bit and - f0-f4 for 64 bit. */ + /* Save the FP argument regs f0-f4 for stdarg. */ if (cfun->stdarg && TARGET_HARD_FLOAT && cfun->va_list_fpr_size @@ -11107,7 +11003,7 @@ s390_frame_info (void) cfun_frame_layout.last_save_gpr_slot = cfun_frame_layout.last_save_gpr; /* The va_arg builtin uses a constant distance of 16 * - UNITS_PER_LONG (r0-r15) to reach the FPRs from the reg_save_area + UNITS_PER_WORD (r0-r15) to reach the FPRs from the reg_save_area pointer. So even if we are going to save the stack pointer in an FPR we need the stack space in order to keep the offsets correct. */ @@ -11120,26 +11016,23 @@ s390_frame_info (void) } cfun_frame_layout.frame_size = get_frame_size (); - if (!TARGET_64BIT && cfun_frame_layout.frame_size > 0x7fff0000) - fatal_error (input_location, - "total size of local variables exceeds architecture limit"); if (!TARGET_PACKED_STACK) { /* Fixed stack layout. */ cfun_frame_layout.backchain_offset = 0; - cfun_frame_layout.f0_offset = 16 * UNITS_PER_LONG; + cfun_frame_layout.f0_offset = 16 * UNITS_PER_WORD; cfun_frame_layout.f4_offset = cfun_frame_layout.f0_offset + 2 * 8; cfun_frame_layout.f8_offset = -cfun_frame_layout.high_fprs * 8; cfun_frame_layout.gprs_offset = (cfun_frame_layout.first_save_gpr_slot - * UNITS_PER_LONG); + * UNITS_PER_WORD); } else if (TARGET_BACKCHAIN) { /* Kernel stack layout - packed stack, backchain, no float */ gcc_assert (TARGET_SOFT_FLOAT); cfun_frame_layout.backchain_offset = (STACK_POINTER_OFFSET - - UNITS_PER_LONG); + - UNITS_PER_WORD); /* The distance between the backchain and the return address save slot must not change. So we always need a slot for the @@ -11162,7 +11055,7 @@ s390_frame_info (void) /* Packed stack layout without backchain. */ /* With stdarg FPRs need their dedicated slots. */ - num_fprs = (TARGET_64BIT && cfun->stdarg ? 2 + num_fprs = (cfun->stdarg ? 2 : (cfun_fpr_save_p (FPR4_REGNUM) + cfun_fpr_save_p (FPR6_REGNUM))); cfun_frame_layout.f4_offset = STACK_POINTER_OFFSET - 8 * num_fprs; @@ -11211,9 +11104,7 @@ s390_frame_info (void) cfun_frame_layout.frame_size += STACK_POINTER_OFFSET - lowest_offset; - /* If under 31 bit an odd number of gprs has to be saved we have to - adjust the frame size to sustain 8 byte alignment of stack - frames. */ + /* Adjust frame size to sustain 8 byte alignment of stack frames. */ cfun_frame_layout.frame_size = ((cfun_frame_layout.frame_size + STACK_BOUNDARY / BITS_PER_UNIT - 1) & ~(STACK_BOUNDARY / BITS_PER_UNIT - 1)); @@ -11490,11 +11381,7 @@ s390_hard_regno_mode_ok (unsigned int regno, machine_mode mode) /* fallthrough */ case GENERAL_REGS: if (REGNO_PAIR_OK (regno, mode)) - { - if (TARGET_ZARCH - || (mode != TFmode && mode != TCmode && mode != TDmode)) - return true; - } + return true; break; case CC_REGS: if (GET_MODE_CLASS (mode) == MODE_CC) @@ -11563,32 +11450,16 @@ s390_hard_regno_scratch_ok (unsigned int regno) return true; } -/* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED. When generating - code that runs in z/Architecture mode, but conforms to the 31-bit - ABI, GPRs can hold 8 bytes; the ABI guarantees only that the lower 4 - bytes are saved across calls, however. */ +/* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED. */ static bool s390_hard_regno_call_part_clobbered (unsigned int, unsigned int regno, machine_mode mode) { - /* For r12 we know that the only bits we actually care about are - preserved across function calls. Since r12 is a fixed reg all - accesses to r12 are generated by the backend. - - This workaround is necessary until gcse implements proper - tracking of partially clobbered registers. */ - if (!TARGET_64BIT - && TARGET_ZARCH - && GET_MODE_SIZE (mode) > 4 - && (!flag_pic || regno != PIC_OFFSET_TABLE_REGNUM) - && ((regno >= 6 && regno <= 15) || regno == 32)) - return true; - if (TARGET_VX && GET_MODE_SIZE (mode) > 8 - && (((TARGET_64BIT && regno >= 24 && regno <= 31)) - || (!TARGET_64BIT && (regno == 18 || regno == 19)))) + && regno >= 24 + && regno <= 31) return true; return false; @@ -11789,7 +11660,7 @@ s390_initial_elimination_offset (int from, int to) reside. */ offset = (cfun_frame_layout.frame_size + cfun_frame_layout.gprs_offset + (RETURN_REGNUM - cfun_frame_layout.first_save_gpr_slot) * - UNITS_PER_LONG); + UNITS_PER_WORD); break; case BASE_REGNUM: @@ -11864,10 +11735,7 @@ save_gprs (rtx base, int offset, int first, int last, rtx_insn *before = NULL) /* Special-case single register. */ if (first == last) { - if (TARGET_64BIT) - insn = gen_movdi (addr, gen_rtx_REG (Pmode, first)); - else - insn = gen_movsi (addr, gen_rtx_REG (Pmode, first)); + insn = gen_movdi (addr, gen_rtx_REG (Pmode, first)); if (!global_not_special_regno_p (first)) RTX_FRAME_RELATED_P (insn) = 1; @@ -11935,7 +11803,7 @@ save_gprs (rtx base, int offset, int first, int last, rtx_insn *before = NULL) { rtx reg = gen_rtx_REG (Pmode, regno); rtx reg_addr = plus_constant (Pmode, base, - offset + (regno - first) * UNITS_PER_LONG); + offset + (regno - first) * UNITS_PER_WORD); if (!s390_restore_gpr_p (regno)) add_reg_note (insn, REG_CFA_NO_RESTORE, reg); add_reg_note (insn, REG_CFA_OFFSET, @@ -11955,16 +11823,12 @@ save_gprs (rtx base, int offset, int first, int last, rtx_insn *before = NULL) goto emit; addr = plus_constant (Pmode, base, - offset + (start - first) * UNITS_PER_LONG); + offset + (start - first) * UNITS_PER_WORD); if (start == last) { - if (TARGET_64BIT) - note = gen_movdi (gen_rtx_MEM (Pmode, addr), - gen_rtx_REG (Pmode, start)); - else - note = gen_movsi (gen_rtx_MEM (Pmode, addr), - gen_rtx_REG (Pmode, start)); + note = gen_movdi (gen_rtx_MEM (Pmode, addr), + gen_rtx_REG (Pmode, start)); note = PATTERN (note); add_reg_note (insn, REG_FRAME_RELATED_EXPR, note); @@ -12013,10 +11877,7 @@ restore_gprs (rtx base, int offset, int first, int last) /* Special-case single register. */ if (first == last) { - if (TARGET_64BIT) - insn = gen_movdi (gen_rtx_REG (Pmode, first), addr); - else - insn = gen_movsi (gen_rtx_REG (Pmode, first), addr); + insn = gen_movdi (gen_rtx_REG (Pmode, first), addr); RTX_FRAME_RELATED_P (insn) = 1; return insn; @@ -12058,9 +11919,9 @@ s390_emit_stack_tie (void) { rtx mem = gen_frame_mem (BLKmode, stack_pointer_rtx); if (frame_pointer_needed) - emit_insn (gen_stack_tie (Pmode, mem, hard_frame_pointer_rtx)); + emit_insn (gen_stack_tiedi (mem, hard_frame_pointer_rtx)); else - emit_insn (gen_stack_tie (Pmode, mem, stack_pointer_rtx)); + emit_insn (gen_stack_tiedi (mem, stack_pointer_rtx)); } /* Copy GPRS into FPR save slots. */ @@ -12267,7 +12128,7 @@ s390_prologue_plus_offset (rtx target, rtx reg, rtx offset, bool frame_related_p static void s390_emit_stack_probe (rtx addr) { - rtx mem = gen_rtx_MEM (word_mode, addr); + rtx mem = gen_rtx_MEM (DImode, addr); MEM_VOLATILE_P (mem) = 1; emit_insn (gen_probe_stack (mem)); } @@ -12298,7 +12159,7 @@ allocate_stack_space (rtx size, HOST_WIDE_INT last_probe_offset, dump_stack_clash_frame_info (NO_PROBE_SMALL_FRAME, true); else { - rtx offset = GEN_INT (probe_interval - UNITS_PER_LONG); + rtx offset = GEN_INT (probe_interval - UNITS_PER_WORD); HOST_WIDE_INT rounded_size = -INTVAL (size) & -probe_interval; HOST_WIDE_INT num_probes = rounded_size / probe_interval; HOST_WIDE_INT residual = -INTVAL (size) - rounded_size; @@ -12364,7 +12225,7 @@ allocate_stack_space (rtx size, HOST_WIDE_INT last_probe_offset, s390_emit_stack_probe (gen_rtx_PLUS (Pmode, stack_pointer_rtx, GEN_INT (residual - - UNITS_PER_LONG))); + - UNITS_PER_WORD))); return temp_reg_clobbered_p; } @@ -12412,7 +12273,7 @@ s390_emit_prologue (void) = 1 << param_stack_clash_protection_probe_interval; HOST_WIDE_INT last_probe_offset = (TARGET_BACKCHAIN - ? (TARGET_PACKED_STACK ? STACK_POINTER_OFFSET - UNITS_PER_LONG : 0) + ? (TARGET_PACKED_STACK ? STACK_POINTER_OFFSET - UNITS_PER_WORD : 0) : probe_interval - (STACK_BOUNDARY / UNITS_PER_WORD)); s390_save_gprs_to_fprs (); @@ -12422,7 +12283,7 @@ s390_emit_prologue (void) { save_gprs (stack_pointer_rtx, cfun_frame_layout.gprs_offset + - UNITS_PER_LONG * (cfun_frame_layout.first_save_gpr + UNITS_PER_WORD * (cfun_frame_layout.first_save_gpr - cfun_frame_layout.first_save_gpr_slot), cfun_frame_layout.first_save_gpr, cfun_frame_layout.last_save_gpr); @@ -12431,7 +12292,7 @@ s390_emit_prologue (void) then LAST_PROBE_OFFSET can move even closer to sp. */ last_probe_offset = (cfun_frame_layout.gprs_offset + - UNITS_PER_LONG * (cfun_frame_layout.first_save_gpr + UNITS_PER_WORD * (cfun_frame_layout.first_save_gpr - cfun_frame_layout.first_save_gpr_slot)); } @@ -12552,14 +12413,9 @@ s390_emit_prologue (void) rtx t = gen_rtx_AND (Pmode, stack_pointer_rtx, GEN_INT (stack_check_mask)); - if (TARGET_64BIT) - emit_insn (gen_ctrapdi4 (gen_rtx_EQ (VOIDmode, - t, const0_rtx), - t, const0_rtx, const0_rtx)); - else - emit_insn (gen_ctrapsi4 (gen_rtx_EQ (VOIDmode, - t, const0_rtx), - t, const0_rtx, const0_rtx)); + emit_insn (gen_ctrapdi4 (gen_rtx_EQ (VOIDmode, + t, const0_rtx), + t, const0_rtx, const0_rtx)); } } } @@ -12775,31 +12631,10 @@ s390_emit_epilogue (bool sibcall) /* Restore call saved fprs. */ - if (TARGET_64BIT) - { - if (cfun_save_high_fprs_p) - { - next_offset = cfun_frame_layout.f8_offset; - for (i = FPR8_REGNUM; i <= FPR15_REGNUM; i++) - { - if (cfun_fpr_save_p (i)) - { - restore_fpr (frame_pointer, - offset + next_offset, i); - cfa_restores - = alloc_reg_note (REG_CFA_RESTORE, - gen_rtx_REG (DFmode, i), cfa_restores); - next_offset += 8; - } - } - } - - } - else + if (cfun_save_high_fprs_p) { - next_offset = cfun_frame_layout.f4_offset; - /* f4, f6 */ - for (i = FPR4_REGNUM; i <= FPR4_REGNUM + 1; i++) + next_offset = cfun_frame_layout.f8_offset; + for (i = FPR8_REGNUM; i <= FPR15_REGNUM; i++) { if (cfun_fpr_save_p (i)) { @@ -12810,10 +12645,7 @@ s390_emit_epilogue (bool sibcall) gen_rtx_REG (DFmode, i), cfa_restores); next_offset += 8; } - else if (!TARGET_PACKED_STACK) - next_offset += 8; } - } /* Restore call saved gprs. */ @@ -12835,7 +12667,7 @@ s390_emit_epilogue (bool sibcall) addr = plus_constant (Pmode, frame_pointer, offset + cfun_frame_layout.gprs_offset + (i - cfun_frame_layout.first_save_gpr_slot) - * UNITS_PER_LONG); + * UNITS_PER_WORD); addr = gen_rtx_MEM (Pmode, addr); set_mem_alias_set (addr, get_frame_alias_set ()); emit_move_insn (addr, gen_rtx_REG (Pmode, i)); @@ -12875,7 +12707,7 @@ s390_emit_epilogue (bool sibcall) offset + cfun_frame_layout.gprs_offset + (RETURN_REGNUM - cfun_frame_layout.first_save_gpr_slot) - * UNITS_PER_LONG); + * UNITS_PER_WORD); addr = gen_rtx_MEM (Pmode, addr); set_mem_alias_set (addr, get_frame_alias_set ()); emit_move_insn (return_reg, addr); @@ -12891,7 +12723,7 @@ s390_emit_epilogue (bool sibcall) offset + cfun_frame_layout.gprs_offset + (cfun_frame_layout.first_restore_gpr - cfun_frame_layout.first_save_gpr_slot) - * UNITS_PER_LONG, + * UNITS_PER_WORD, cfun_frame_layout.first_restore_gpr, cfun_frame_layout.last_restore_gpr); insn = emit_insn (insn); @@ -12956,25 +12788,13 @@ s390_output_split_stack_data (rtx parm_block, rtx call_done, switch_to_section (targetm.asm_out.function_rodata_section (current_function_decl, false)); - if (TARGET_64BIT) - output_asm_insn (".align\t8", NULL); - else - output_asm_insn (".align\t4", NULL); + output_asm_insn (".align\t8", NULL); (*targetm.asm_out.internal_label) (asm_out_file, "L", CODE_LABEL_NUMBER (parm_block)); - if (TARGET_64BIT) - { - output_asm_insn (".quad\t%0", &frame_size); - output_asm_insn (".quad\t%0", &args_size); - output_asm_insn (".quad\t%1-%0", ops); - } - else - { - output_asm_insn (".long\t%0", &frame_size); - output_asm_insn (".long\t%0", &args_size); - output_asm_insn (".long\t%1-%0", ops); - } + output_asm_insn (".quad\t%0", &frame_size); + output_asm_insn (".quad\t%0", &args_size); + output_asm_insn (".quad\t%1-%0", ops); switch_to_section (current_function_section ()); } @@ -12988,7 +12808,7 @@ s390_expand_split_stack_prologue (void) rtx r1, guard, cc = NULL; rtx_insn *insn; /* Offset from thread pointer to __private_ss. */ - int psso = TARGET_64BIT ? 0x38 : 0x20; + int psso = 0x38; /* Pointer size in bytes. */ /* Frame size and argument size - the two parameters to __morestack. */ HOST_WIDE_INT frame_size = cfun_frame_layout.frame_size; @@ -13034,7 +12854,7 @@ s390_expand_split_stack_prologue (void) /* Get thread pointer. r1 is the only register we can always destroy - r0 could contain a static chain (and cannot be used to address memory anyway), r2-r6 can contain parameters, and r6-r15 are callee-saved. */ - emit_insn (gen_get_thread_pointer (Pmode, r1)); + emit_insn (gen_get_thread_pointerdi (r1)); /* Aim at __private_ss. */ guard = gen_rtx_MEM (Pmode, plus_constant (Pmode, r1, psso)); @@ -13043,10 +12863,7 @@ s390_expand_split_stack_prologue (void) if (frame_size > SPLIT_STACK_AVAILABLE) { emit_move_insn (r1, guard); - if (TARGET_64BIT) - emit_insn (gen_adddi3 (r1, r1, GEN_INT (frame_size))); - else - emit_insn (gen_addsi3 (r1, r1, GEN_INT (frame_size))); + emit_insn (gen_adddi3 (r1, r1, GEN_INT (frame_size))); guard = r1; } @@ -13068,20 +12885,18 @@ s390_expand_split_stack_prologue (void) conventions: it preserves param/return/static chain registers for calling main function body, and looks for its own parameters at %r1. */ if (cc != NULL) - tmp = gen_split_stack_cond_call (Pmode, - morestack_ref, - parm_base, - call_done, - GEN_INT (frame_size), - GEN_INT (args_size), - cc); + tmp = gen_split_stack_cond_calldi (morestack_ref, + parm_base, + call_done, + GEN_INT (frame_size), + GEN_INT (args_size), + cc); else - tmp = gen_split_stack_call (Pmode, - morestack_ref, - parm_base, - call_done, - GEN_INT (frame_size), - GEN_INT (args_size)); + tmp = gen_split_stack_calldi (morestack_ref, + parm_base, + call_done, + GEN_INT (frame_size), + GEN_INT (args_size)); insn = emit_jump_insn (tmp); JUMP_LABEL (insn) = call_done; @@ -13159,13 +12974,6 @@ s390_can_use_return_insn (void) if (cfun_gpr_save_slot (i) != SAVE_SLOT_NONE) return false; - /* For 31 bit this is not covered by the frame_size check below - since f4, f6 are saved in the register save area without needing - additional stack space. */ - if (!TARGET_64BIT - && (cfun_fpr_save_p (FPR4_REGNUM) || cfun_fpr_save_p (FPR6_REGNUM))) - return false; - if (cfun->machine->base_reg && !call_used_regs[REGNO (cfun->machine->base_reg)]) return false; @@ -13461,8 +13269,7 @@ s390_function_arg_advance (cumulative_args_t cum_v, } else if (s390_function_arg_integer (arg.mode, arg.type)) { - int size = s390_function_arg_size (arg.mode, arg.type); - cum->gprs += ((size + UNITS_PER_LONG - 1) / UNITS_PER_LONG); + cum->gprs += 1; } else gcc_unreachable (); @@ -13478,9 +13285,8 @@ s390_function_arg_advance (cumulative_args_t cum_v, On S/390, we use general purpose registers 2 through 6 to pass integer, pointer, and certain structure arguments, and - floating point registers 0 and 2 (0, 2, 4, and 6 on 64-bit) - to pass floating point arguments. All remaining arguments - are pushed to the stack. */ + floating point registers 0, 2, 4, and 6 to pass floating point + arguments. All remaining arguments are pushed to the stack. */ static rtx s390_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) @@ -13508,26 +13314,10 @@ s390_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) } else if (s390_function_arg_integer (arg.mode, arg.type)) { - int size = s390_function_arg_size (arg.mode, arg.type); - int n_gprs = (size + UNITS_PER_LONG - 1) / UNITS_PER_LONG; - - if (cum->gprs + n_gprs > GP_ARG_NUM_REG) + if (cum->gprs + 1 > GP_ARG_NUM_REG) return NULL_RTX; - else if (n_gprs == 1 || UNITS_PER_WORD == UNITS_PER_LONG) + else return gen_rtx_REG (arg.mode, cum->gprs + 2); - else if (n_gprs == 2) - { - rtvec p = rtvec_alloc (2); - - RTVEC_ELT (p, 0) - = gen_rtx_EXPR_LIST (SImode, gen_rtx_REG (SImode, cum->gprs + 2), - const0_rtx); - RTVEC_ELT (p, 1) - = gen_rtx_EXPR_LIST (SImode, gen_rtx_REG (SImode, cum->gprs + 3), - GEN_INT (4)); - - return gen_rtx_PARALLEL (arg.mode, p); - } } /* After the real arguments, expand_call calls us once again with an @@ -13589,16 +13379,20 @@ s390_return_in_memory (const_tree type, const_tree fundecl ATTRIBUTE_UNUSED) /* Function arguments and return values are promoted to word size. */ static machine_mode -s390_promote_function_mode (const_tree type, machine_mode mode, - int *punsignedp, +s390_promote_function_mode (const_tree type ATTRIBUTE_UNUSED, + machine_mode mode, + int *punsignedp ATTRIBUTE_UNUSED, const_tree fntype ATTRIBUTE_UNUSED, int for_return ATTRIBUTE_UNUSED) { if (INTEGRAL_MODE_P (mode) - && GET_MODE_SIZE (mode) < UNITS_PER_LONG) + && GET_MODE_SIZE (mode) < UNITS_PER_WORD) { +/* This is defined for TPF. */ +#ifdef POINTERS_EXTEND_UNSIGNED if (type != NULL_TREE && POINTER_TYPE_P (type)) *punsignedp = POINTERS_EXTEND_UNSIGNED; +#endif return Pmode; } @@ -13639,26 +13433,7 @@ s390_function_and_libcall_value (machine_mode mode, return gen_rtx_REG (mode, FIRST_VEC_ARG_REGNO); else if (TARGET_HARD_FLOAT && SCALAR_FLOAT_MODE_P (mode)) return gen_rtx_REG (mode, 16); - else if (GET_MODE_SIZE (mode) <= UNITS_PER_LONG - || UNITS_PER_LONG == UNITS_PER_WORD) - return gen_rtx_REG (mode, 2); - else if (GET_MODE_SIZE (mode) == 2 * UNITS_PER_LONG) - { - /* This case is triggered when returning a 64 bit value with - -m31 -mzarch. Although the value would fit into a single - register it has to be forced into a 32 bit register pair in - order to match the ABI. */ - rtvec p = rtvec_alloc (2); - - RTVEC_ELT (p, 0) - = gen_rtx_EXPR_LIST (SImode, gen_rtx_REG (SImode, 2), const0_rtx); - RTVEC_ELT (p, 1) - = gen_rtx_EXPR_LIST (SImode, gen_rtx_REG (SImode, 3), GEN_INT (4)); - - return gen_rtx_PARALLEL (mode, p); - } - - gcc_unreachable (); + return gen_rtx_REG (mode, 2); } /* Define where to return a scalar return value of type RET_TYPE. */ @@ -13852,7 +13627,7 @@ s390_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED) || (cfun->va_list_fpr_size && n_fpr < FP_ARG_NUM_REG)) { t = make_tree (TREE_TYPE (sav), return_address_pointer_rtx); - t = fold_build_pointer_plus_hwi (t, -RETURN_REGNUM * UNITS_PER_LONG); + t = fold_build_pointer_plus_hwi (t, -RETURN_REGNUM * UNITS_PER_WORD); t = build2 (MODIFY_EXPR, TREE_TYPE (sav), sav, t); TREE_SIDE_EFFECTS (t) = 1; @@ -13896,7 +13671,7 @@ s390_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, int indirect_p, size, n_reg, sav_ofs, sav_scale, max_reg; tree lab_false, lab_over = NULL_TREE; tree addr = create_tmp_var (ptr_type_node, "addr"); - bool left_align_p; /* How a value < UNITS_PER_LONG is aligned within + bool left_align_p; /* How a value < UNITS_PER_WORD is aligned within a stack slot. */ f_gpr = TYPE_FIELDS (TREE_TYPE (va_list_type_node)); @@ -13930,12 +13705,9 @@ s390_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, reg = gpr; n_reg = 1; - /* kernel stack layout on 31 bit: It is assumed here that no padding - will be added by s390_frame_info because for va_args always an even - number of gprs has to be saved r15-r2 = 14 regs. */ - sav_ofs = 2 * UNITS_PER_LONG; - sav_scale = UNITS_PER_LONG; - size = UNITS_PER_LONG; + sav_ofs = 2 * UNITS_PER_WORD; + sav_scale = UNITS_PER_WORD; + size = UNITS_PER_WORD; max_reg = GP_ARG_NUM_REG - n_reg; left_align_p = false; } @@ -13967,7 +13739,7 @@ s390_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, indirect_p = 0; reg = fpr; n_reg = 1; - sav_ofs = 16 * UNITS_PER_LONG; + sav_ofs = 16 * UNITS_PER_WORD; sav_scale = 8; max_reg = FP_ARG_NUM_REG - n_reg; left_align_p = false; @@ -13983,17 +13755,14 @@ s390_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, /* Otherwise into GP registers. */ indirect_p = 0; reg = gpr; - n_reg = (size + UNITS_PER_LONG - 1) / UNITS_PER_LONG; + n_reg = (size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; - /* kernel stack layout on 31 bit: It is assumed here that no padding - will be added by s390_frame_info because for va_args always an even - number of gprs has to be saved r15-r2 = 14 regs. */ - sav_ofs = 2 * UNITS_PER_LONG; + sav_ofs = 2 * UNITS_PER_WORD; - if (size < UNITS_PER_LONG) - sav_ofs += UNITS_PER_LONG - size; + if (size < UNITS_PER_WORD) + sav_ofs += UNITS_PER_WORD - size; - sav_scale = UNITS_PER_LONG; + sav_scale = UNITS_PER_WORD; max_reg = GP_ARG_NUM_REG - n_reg; left_align_p = false; } @@ -14037,15 +13806,15 @@ s390_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, /* ... Otherwise out of the overflow area. */ t = ovf; - if (size < UNITS_PER_LONG && !left_align_p) - t = fold_build_pointer_plus_hwi (t, UNITS_PER_LONG - size); + if (size < UNITS_PER_WORD && !left_align_p) + t = fold_build_pointer_plus_hwi (t, UNITS_PER_WORD - size); gimplify_expr (&t, pre_p, NULL, is_gimple_val, fb_rvalue); gimplify_assign (addr, t, pre_p); - if (size < UNITS_PER_LONG && left_align_p) - t = fold_build_pointer_plus_hwi (t, UNITS_PER_LONG); + if (size < UNITS_PER_WORD && left_align_p) + t = fold_build_pointer_plus_hwi (t, UNITS_PER_WORD); else t = fold_build_pointer_plus_hwi (t, size); @@ -14187,20 +13956,10 @@ s390_asm_trampoline_template (FILE *file) op[0] = gen_rtx_REG (Pmode, 0); op[1] = gen_rtx_REG (Pmode, 1); - if (TARGET_64BIT) - { - output_asm_insn ("basr\t%1,0", op); /* 2 byte */ - output_asm_insn ("lmg\t%0,%1,14(%1)", op); /* 6 byte */ - output_asm_insn ("br\t%1", op); /* 2 byte */ - ASM_OUTPUT_SKIP (file, (HOST_WIDE_INT)(TRAMPOLINE_SIZE - 10)); - } - else - { - output_asm_insn ("basr\t%1,0", op); /* 2 byte */ - output_asm_insn ("lm\t%0,%1,6(%1)", op); /* 4 byte */ - output_asm_insn ("br\t%1", op); /* 2 byte */ - ASM_OUTPUT_SKIP (file, (HOST_WIDE_INT)(TRAMPOLINE_SIZE - 8)); - } + output_asm_insn ("basr\t%1,0", op); /* 2 byte */ + output_asm_insn ("lmg\t%0,%1,14(%1)", op); /* 6 byte */ + output_asm_insn ("br\t%1", op); /* 2 byte */ + ASM_OUTPUT_SKIP (file, (HOST_WIDE_INT)(TRAMPOLINE_SIZE - 10)); } /* Emit RTL insns to initialize the variable parts of a trampoline. @@ -14214,11 +13973,11 @@ s390_trampoline_init (rtx m_tramp, tree fndecl, rtx cxt) rtx mem; emit_block_move (m_tramp, assemble_trampoline_template (), - GEN_INT (2 * UNITS_PER_LONG), BLOCK_OP_NORMAL); + GEN_INT (2 * UNITS_PER_WORD), BLOCK_OP_NORMAL); - mem = adjust_address (m_tramp, Pmode, 2 * UNITS_PER_LONG); + mem = adjust_address (m_tramp, Pmode, 2 * UNITS_PER_WORD); emit_move_insn (mem, cxt); - mem = adjust_address (m_tramp, Pmode, 3 * UNITS_PER_LONG); + mem = adjust_address (m_tramp, Pmode, 3 * UNITS_PER_WORD); emit_move_insn (mem, fnaddr); } @@ -14257,16 +14016,11 @@ s390_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) op[0] = gen_rtx_REG (Pmode, RETURN_REGNUM); op[1] = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM); - op[1] = gen_rtx_MEM (Pmode, plus_constant (Pmode, op[1], UNITS_PER_LONG)); - op[3] = GEN_INT (UNITS_PER_LONG); + op[1] = gen_rtx_MEM (Pmode, plus_constant (Pmode, op[1], UNITS_PER_WORD)); + op[3] = GEN_INT (UNITS_PER_WORD); op[2] = gen_rtx_SYMBOL_REF (Pmode, flag_fentry ? "__fentry__" : "_mcount"); SYMBOL_REF_FLAGS (op[2]) |= SYMBOL_FLAG_FUNCTION; - if (flag_pic && !TARGET_64BIT) - { - op[2] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[2]), UNSPEC_PLT31); - op[2] = gen_rtx_CONST (Pmode, op[2]); - } if (flag_record_mcount) fprintf (file, "1:\n"); @@ -14281,43 +14035,25 @@ s390_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) else output_asm_insn ("brasl\t0,%2%K2", op); } - else if (TARGET_64BIT) - { - if (flag_nop_mcount) - output_asm_nops ("-mnop-mcount", /* stg */ 3 + /* brasl */ 3 + - /* lg */ 3); - else - { - output_asm_insn ("stg\t%0,%1", op); - if (flag_dwarf2_cfi_asm) - output_asm_insn (".cfi_rel_offset\t%0,%3", op); - output_asm_insn ("brasl\t%0,%2%K2", op); - output_asm_insn ("lg\t%0,%1", op); - if (flag_dwarf2_cfi_asm) - output_asm_insn (".cfi_restore\t%0", op); - } - } + + if (flag_nop_mcount) + output_asm_nops ("-mnop-mcount", /* stg */ 3 + /* brasl */ 3 + + /* lg */ 3); else { - if (flag_nop_mcount) - output_asm_nops ("-mnop-mcount", /* st */ 2 + /* brasl */ 3 + - /* l */ 2); - else - { - output_asm_insn ("st\t%0,%1", op); - if (flag_dwarf2_cfi_asm) - output_asm_insn (".cfi_rel_offset\t%0,%3", op); - output_asm_insn ("brasl\t%0,%2%K2", op); - output_asm_insn ("l\t%0,%1", op); - if (flag_dwarf2_cfi_asm) - output_asm_insn (".cfi_restore\t%0", op); - } + output_asm_insn ("stg\t%0,%1", op); + if (flag_dwarf2_cfi_asm) + output_asm_insn (".cfi_rel_offset\t%0,%3", op); + output_asm_insn ("brasl\t%0,%2%K2", op); + output_asm_insn ("lg\t%0,%1", op); + if (flag_dwarf2_cfi_asm) + output_asm_insn (".cfi_restore\t%0", op); } if (flag_record_mcount) { fprintf (file, "\t.section __mcount_loc, \"a\",@progbits\n"); - fprintf (file, "\t.%s 1b\n", TARGET_64BIT ? "quad" : "long"); + fprintf (file, "\t.quad 1b\n"); fprintf (file, "\t.previous\n"); } } @@ -14386,7 +14122,6 @@ s390_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED, { const char *fnname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (thunk)); rtx op[10]; - int nonlocal = 0; assemble_start_function (thunk, fnname); /* Make sure unwind info is emitted for the thunk if needed. */ @@ -14394,15 +14129,6 @@ s390_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED, /* Operand 0 is the target function. */ op[0] = XEXP (DECL_RTL (function), 0); - if (flag_pic && !SYMBOL_REF_LOCAL_P (op[0])) - { - nonlocal = 1; - if (!TARGET_64BIT) - { - op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]), UNSPEC_GOT); - op[0] = gen_rtx_CONST (Pmode, op[0]); - } - } /* Operand 1 is the 'this' pointer. */ if (aggregate_value_p (TREE_TYPE (TREE_TYPE (function)), function)) @@ -14429,220 +14155,88 @@ s390_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED, op[9] = NULL_RTX; /* Generate code. */ - if (TARGET_64BIT) - { - /* Setup literal pool pointer if required. */ - if ((!DISP_IN_RANGE (delta) - && !CONST_OK_FOR_K (delta) - && !CONST_OK_FOR_Os (delta)) - || (!DISP_IN_RANGE (vcall_offset) - && !CONST_OK_FOR_K (vcall_offset) - && !CONST_OK_FOR_Os (vcall_offset))) - { - op[5] = gen_label_rtx (); - output_asm_insn ("larl\t%4,%5", op); - } - - /* Add DELTA to this pointer. */ - if (delta) - { - if (CONST_OK_FOR_J (delta)) - output_asm_insn ("la\t%1,%2(%1)", op); - else if (DISP_IN_RANGE (delta)) - output_asm_insn ("lay\t%1,%2(%1)", op); - else if (CONST_OK_FOR_K (delta)) - output_asm_insn ("aghi\t%1,%2", op); - else if (CONST_OK_FOR_Os (delta)) - output_asm_insn ("agfi\t%1,%2", op); - else - { - op[6] = gen_label_rtx (); - output_asm_insn ("agf\t%1,%6-%5(%4)", op); - } - } - - /* Perform vcall adjustment. */ - if (vcall_offset) - { - if (DISP_IN_RANGE (vcall_offset)) - { - output_asm_insn ("lg\t%4,0(%1)", op); - output_asm_insn ("ag\t%1,%3(%4)", op); - } - else if (CONST_OK_FOR_K (vcall_offset)) - { - output_asm_insn ("lghi\t%4,%3", op); - output_asm_insn ("ag\t%4,0(%1)", op); - output_asm_insn ("ag\t%1,0(%4)", op); - } - else if (CONST_OK_FOR_Os (vcall_offset)) - { - output_asm_insn ("lgfi\t%4,%3", op); - output_asm_insn ("ag\t%4,0(%1)", op); - output_asm_insn ("ag\t%1,0(%4)", op); - } - else - { - op[7] = gen_label_rtx (); - output_asm_insn ("llgf\t%4,%7-%5(%4)", op); - output_asm_insn ("ag\t%4,0(%1)", op); - output_asm_insn ("ag\t%1,0(%4)", op); - } - } - - /* Jump to target. */ - output_asm_insn ("jg\t%0%K0", op); - - /* Output literal pool if required. */ - if (op[5]) - { - output_asm_insn (".align\t4", op); - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[5])); - } - if (op[6]) - { - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[6])); - output_asm_insn (".long\t%2", op); - } - if (op[7]) + /* Setup literal pool pointer if required. */ + if ((!DISP_IN_RANGE (delta) + && !CONST_OK_FOR_K (delta) + && !CONST_OK_FOR_Os (delta)) + || (!DISP_IN_RANGE (vcall_offset) + && !CONST_OK_FOR_K (vcall_offset) + && !CONST_OK_FOR_Os (vcall_offset))) + { + op[5] = gen_label_rtx (); + output_asm_insn ("larl\t%4,%5", op); + } + + /* Add DELTA to this pointer. */ + if (delta) + { + if (CONST_OK_FOR_J (delta)) + output_asm_insn ("la\t%1,%2(%1)", op); + else if (DISP_IN_RANGE (delta)) + output_asm_insn ("lay\t%1,%2(%1)", op); + else if (CONST_OK_FOR_K (delta)) + output_asm_insn ("aghi\t%1,%2", op); + else if (CONST_OK_FOR_Os (delta)) + output_asm_insn ("agfi\t%1,%2", op); + else { - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[7])); - output_asm_insn (".long\t%3", op); + op[6] = gen_label_rtx (); + output_asm_insn ("agf\t%1,%6-%5(%4)", op); } } - else - { - /* Setup base pointer if required. */ - if (!vcall_offset - || (!DISP_IN_RANGE (delta) - && !CONST_OK_FOR_K (delta) - && !CONST_OK_FOR_Os (delta)) - || (!DISP_IN_RANGE (delta) - && !CONST_OK_FOR_K (vcall_offset) - && !CONST_OK_FOR_Os (vcall_offset))) - { - op[5] = gen_label_rtx (); - output_asm_insn ("basr\t%4,0", op); - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[5])); - } - - /* Add DELTA to this pointer. */ - if (delta) - { - if (CONST_OK_FOR_J (delta)) - output_asm_insn ("la\t%1,%2(%1)", op); - else if (DISP_IN_RANGE (delta)) - output_asm_insn ("lay\t%1,%2(%1)", op); - else if (CONST_OK_FOR_K (delta)) - output_asm_insn ("ahi\t%1,%2", op); - else if (CONST_OK_FOR_Os (delta)) - output_asm_insn ("afi\t%1,%2", op); - else - { - op[6] = gen_label_rtx (); - output_asm_insn ("a\t%1,%6-%5(%4)", op); - } - } - /* Perform vcall adjustment. */ - if (vcall_offset) + /* Perform vcall adjustment. */ + if (vcall_offset) + { + if (DISP_IN_RANGE (vcall_offset)) { - if (CONST_OK_FOR_J (vcall_offset)) - { - output_asm_insn ("l\t%4,0(%1)", op); - output_asm_insn ("a\t%1,%3(%4)", op); - } - else if (DISP_IN_RANGE (vcall_offset)) - { - output_asm_insn ("l\t%4,0(%1)", op); - output_asm_insn ("ay\t%1,%3(%4)", op); - } - else if (CONST_OK_FOR_K (vcall_offset)) - { - output_asm_insn ("lhi\t%4,%3", op); - output_asm_insn ("a\t%4,0(%1)", op); - output_asm_insn ("a\t%1,0(%4)", op); - } - else if (CONST_OK_FOR_Os (vcall_offset)) - { - output_asm_insn ("iilf\t%4,%3", op); - output_asm_insn ("a\t%4,0(%1)", op); - output_asm_insn ("a\t%1,0(%4)", op); - } - else - { - op[7] = gen_label_rtx (); - output_asm_insn ("l\t%4,%7-%5(%4)", op); - output_asm_insn ("a\t%4,0(%1)", op); - output_asm_insn ("a\t%1,0(%4)", op); - } - - /* We had to clobber the base pointer register. - Re-setup the base pointer (with a different base). */ - op[5] = gen_label_rtx (); - output_asm_insn ("basr\t%4,0", op); - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[5])); + output_asm_insn ("lg\t%4,0(%1)", op); + output_asm_insn ("ag\t%1,%3(%4)", op); } - - /* Jump to target. */ - op[8] = gen_label_rtx (); - - if (!flag_pic) - output_asm_insn ("l\t%4,%8-%5(%4)", op); - else if (!nonlocal) - output_asm_insn ("a\t%4,%8-%5(%4)", op); - /* We cannot call through .plt, since .plt requires %r12 loaded. */ - else if (flag_pic == 1) + else if (CONST_OK_FOR_K (vcall_offset)) { - output_asm_insn ("a\t%4,%8-%5(%4)", op); - output_asm_insn ("l\t%4,%0(%4)", op); + output_asm_insn ("lghi\t%4,%3", op); + output_asm_insn ("ag\t%4,0(%1)", op); + output_asm_insn ("ag\t%1,0(%4)", op); } - else if (flag_pic == 2) + else if (CONST_OK_FOR_Os (vcall_offset)) { - op[9] = gen_rtx_REG (Pmode, 0); - output_asm_insn ("l\t%9,%8-4-%5(%4)", op); - output_asm_insn ("a\t%4,%8-%5(%4)", op); - output_asm_insn ("ar\t%4,%9", op); - output_asm_insn ("l\t%4,0(%4)", op); + output_asm_insn ("lgfi\t%4,%3", op); + output_asm_insn ("ag\t%4,0(%1)", op); + output_asm_insn ("ag\t%1,0(%4)", op); } - - output_asm_insn ("br\t%4", op); - - /* Output literal pool. */ - output_asm_insn (".align\t4", op); - - if (nonlocal && flag_pic == 2) - output_asm_insn (".long\t%0", op); - if (nonlocal) + else { - op[0] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); - SYMBOL_REF_FLAGS (op[0]) = SYMBOL_FLAG_LOCAL; + op[7] = gen_label_rtx (); + output_asm_insn ("llgf\t%4,%7-%5(%4)", op); + output_asm_insn ("ag\t%4,0(%1)", op); + output_asm_insn ("ag\t%1,0(%4)", op); } + } - targetm.asm_out.internal_label (file, "L", CODE_LABEL_NUMBER (op[8])); - if (!flag_pic) - output_asm_insn (".long\t%0", op); - else - output_asm_insn (".long\t%0-%5", op); + /* Jump to target. */ + output_asm_insn ("jg\t%0%K0", op); - if (op[6]) - { - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[6])); - output_asm_insn (".long\t%2", op); - } - if (op[7]) - { - targetm.asm_out.internal_label (file, "L", - CODE_LABEL_NUMBER (op[7])); - output_asm_insn (".long\t%3", op); - } + /* Output literal pool if required. */ + if (op[5]) + { + output_asm_insn (".align\t4", op); + targetm.asm_out.internal_label (file, "L", + CODE_LABEL_NUMBER (op[5])); + } + if (op[6]) + { + targetm.asm_out.internal_label (file, "L", + CODE_LABEL_NUMBER (op[6])); + output_asm_insn (".long\t%2", op); } + if (op[7]) + { + targetm.asm_out.internal_label (file, "L", + CODE_LABEL_NUMBER (op[7])); + output_asm_insn (".long\t%3", op); + } + final_end_function (); assemble_end_function (thunk, fnname); } @@ -14739,24 +14333,18 @@ s390_indirect_branch_via_inline_thunk (rtx execute_target) ASM_OUTPUT_LABEL (asm_out_file, label); } - if (!TARGET_ZARCH) - fputs ("\t.machinemode zarch\n", asm_out_file); - if (REG_P (execute_target)) fprintf (asm_out_file, "\tex\t%%r0,0(%%r%d)\n", REGNO (execute_target)); else output_asm_insn ("\texrl\t%%r0,%0", &execute_target); - if (!TARGET_ZARCH) - fputs ("\t.machinemode esa\n", asm_out_file); - fputs ("0:\tj\t0b\n", asm_out_file); } static bool s390_valid_pointer_mode (scalar_int_mode mode) { - return (mode == SImode || (TARGET_64BIT && mode == DImode)); + return mode == SImode || mode == DImode; } /* Checks whether the given CALL_EXPR would use a caller @@ -14802,7 +14390,7 @@ s390_call_saved_register_used (tree call_expr) if (REG_P (parm_rtx)) { int size = s390_function_arg_size (arg.mode, arg.type); - int nregs = (size + UNITS_PER_LONG - 1) / UNITS_PER_LONG; + int nregs = (size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; for (reg = 0; reg < nregs; reg++) if (!call_used_or_fixed_reg_p (reg + REGNO (parm_rtx))) @@ -14863,11 +14451,6 @@ s390_function_ok_for_sibcall (tree decl, tree exp) if (TARGET_TPF_PROFILING) return false; - /* The 31 bit PLT code uses register 12 (GOT pointer - caller saved) - which would have to be restored before the sibcall. */ - if (!TARGET_64BIT && flag_pic && decl && !targetm.binds_local_p (decl)) - return false; - /* The thunks for indirect branches require r1 if no exrl is available. r1 might not be available when doing a sibling call. */ @@ -14908,7 +14491,6 @@ rtx_insn * s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, rtx retaddr_reg) { - bool plt31_call_p = false; rtx_insn *insn; rtx vec[4] = { NULL_RTX }; int elts = 0; @@ -14918,49 +14500,18 @@ s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, rtx *clobber_thunk_reg = &vec[3]; int i; - /* Direct function calls need special treatment. */ - if (GET_CODE (addr_location) == SYMBOL_REF) - { - /* When calling a global routine in PIC mode, we must - replace the symbol itself with the PLT stub. */ - if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location) && !TARGET_64BIT) - { - if (retaddr_reg != NULL_RTX) - { - addr_location = gen_rtx_UNSPEC (Pmode, - gen_rtvec (1, addr_location), - UNSPEC_PLT31); - addr_location = gen_rtx_CONST (Pmode, addr_location); - plt31_call_p = true; - } - else - /* For -fpic code the PLT entries might use r12 which is - call-saved. Therefore we cannot do a sibcall when - calling directly using a symbol ref. When reaching - this point we decided (in s390_function_ok_for_sibcall) - to do a sibcall for a function pointer but one of the - optimizers was able to get rid of the function pointer - by propagating the symbol ref into the call. This - optimization is illegal for S/390 so we turn the direct - call into a indirect call again. */ - addr_location = force_reg (Pmode, addr_location); - } - } - /* If it is already an indirect call or the code above moved the SYMBOL_REF to somewhere else make sure the address can be found in register 1. */ if (retaddr_reg == NULL_RTX - && GET_CODE (addr_location) != SYMBOL_REF - && !plt31_call_p) + && GET_CODE (addr_location) != SYMBOL_REF) { emit_move_insn (gen_rtx_REG (Pmode, SIBCALL_REGNUM), addr_location); addr_location = gen_rtx_REG (Pmode, SIBCALL_REGNUM); } if (TARGET_INDIRECT_BRANCH_NOBP_CALL - && GET_CODE (addr_location) != SYMBOL_REF - && !plt31_call_p) + && GET_CODE (addr_location) != SYMBOL_REF) { /* Indirect branch thunks require the target to be a single GPR. */ addr_location = force_reg (Pmode, addr_location); @@ -15011,8 +14562,8 @@ s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, insn = emit_call_insn (*call); - /* 31-bit PLT stubs and tls calls use the GOT register implicitly. */ - if (plt31_call_p || tls_call != NULL_RTX) + /* tls calls use the GOT register implicitly. */ + if (tls_call != NULL_RTX) { /* s390_function_ok_for_sibcall should have denied sibcalls in this case. */ @@ -15033,16 +14584,9 @@ s390_conditional_register_usage (void) fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; fixed_regs[BASE_REGNUM] = 0; fixed_regs[RETURN_REGNUM] = 0; - if (TARGET_64BIT) - { - for (i = FPR8_REGNUM; i <= FPR15_REGNUM; i++) - call_used_regs[i] = 0; - } - else - { - call_used_regs[FPR4_REGNUM] = 0; - call_used_regs[FPR6_REGNUM] = 0; - } + + for (i = FPR8_REGNUM; i <= FPR15_REGNUM; i++) + call_used_regs[i] = 0; if (TARGET_SOFT_FLOAT) { @@ -15188,7 +14732,7 @@ s390_optimize_prologue (void) if (cfun_frame_layout.first_save_gpr != -1) save_gprs (base, off + (cfun_frame_layout.first_save_gpr - - first) * UNITS_PER_LONG, + - first) * UNITS_PER_WORD, cfun_frame_layout.first_save_gpr, cfun_frame_layout.last_save_gpr, insn); @@ -15244,7 +14788,7 @@ s390_optimize_prologue (void) { rtx rpat = restore_gprs (base, off + (cfun_frame_layout.first_restore_gpr - - first) * UNITS_PER_LONG, + - first) * UNITS_PER_WORD, cfun_frame_layout.first_restore_gpr, cfun_frame_layout.last_restore_gpr); @@ -16602,15 +16146,6 @@ static void s390_option_override_internal (struct gcc_options *opts, struct gcc_options *opts_set) { - /* Architecture mode defaults according to ABI. */ - if (!(opts_set->x_target_flags & MASK_ZARCH)) - { - if (TARGET_64BIT) - opts->x_target_flags |= MASK_ZARCH; - else - opts->x_target_flags &= ~MASK_ZARCH; - } - /* Set the march default in case it hasn't been specified on cmdline. */ if (!opts_set->x_s390_arch) opts->x_s390_arch = PROCESSOR_2064_Z900; @@ -16627,8 +16162,6 @@ s390_option_override_internal (struct gcc_options *opts, if (opts->x_s390_arch == PROCESSOR_NATIVE || opts->x_s390_tune == PROCESSOR_NATIVE) gcc_unreachable (); - if (TARGET_64BIT && !TARGET_ZARCH_P (opts->x_target_flags)) - error ("64-bit ABI not supported in ESA/390 mode"); if (opts->x_s390_indirect_branch == indirect_branch_thunk_inline || opts->x_s390_indirect_branch_call == indirect_branch_thunk_inline @@ -16656,10 +16189,10 @@ s390_option_override_internal (struct gcc_options *opts, } /* Enable hardware transactions if available and not explicitly - disabled by user. E.g. with -m31 -march=zEC12 -mzarch */ + disabled by user. E.g. with -march=zEC12. */ if (!TARGET_OPT_HTM_P (opts_set->x_target_flags)) { - if (TARGET_CPU_HTM_P (opts) && TARGET_ZARCH_P (opts->x_target_flags)) + if (TARGET_CPU_HTM_P (opts)) opts->x_target_flags |= MASK_OPT_HTM; else opts->x_target_flags &= ~MASK_OPT_HTM; @@ -16679,16 +16212,15 @@ s390_option_override_internal (struct gcc_options *opts, } else { - if (TARGET_CPU_VX_P (opts) && TARGET_ZARCH_P (opts->x_target_flags)) + if (TARGET_CPU_VX_P (opts)) /* Enable vector support if available and not explicitly disabled - by user. E.g. with -m31 -march=z13 -mzarch */ + by user. E.g. with -march=z13. */ opts->x_target_flags |= MASK_OPT_VX; else opts->x_target_flags &= ~MASK_OPT_VX; } - /* Use hardware DFP if available and not explicitly disabled by - user. E.g. with -m31 -march=z10 -mzarch */ + /* Use hardware DFP if available and not explicitly disabled by user. */ if (!TARGET_HARD_DFP_P (opts_set->x_target_flags)) { if (TARGET_DFP_P (opts)) @@ -16705,9 +16237,6 @@ s390_option_override_internal (struct gcc_options *opts, error ("hardware decimal floating-point instructions" " not available on %s", processor_table[(int)opts->x_s390_arch].name); - if (!TARGET_ZARCH_P (opts->x_target_flags)) - error ("hardware decimal floating-point instructions" - " not available in ESA/390 mode"); } else opts->x_target_flags &= ~MASK_HARD_DFP; @@ -16807,6 +16336,11 @@ s390_option_override_internal (struct gcc_options *opts, else SET_OPTION_IF_UNSET (opts, opts_set, param_vect_partial_vector_usage, 0); + if (flag_m31) + error ("%<-m31%> is no longer supported"); + if (flag_mesa) + error ("%<-mesa%> is no longer supported"); + /* Set the default alignment. */ s390_default_align (opts); @@ -16816,12 +16350,6 @@ s390_option_override_internal (struct gcc_options *opts, /* Call target specific restore function to do post-init work. At the moment, this just sets opts->x_s390_cost_pointer. */ s390_function_specific_restore (opts, opts_set, NULL); - - /* Check whether -mfentry is supported. It cannot be used in 31-bit mode, - because 31-bit PLT stubs assume that %r12 contains GOT address, which is - not the case when the code runs before the prolog. */ - if (opts->x_flag_fentry && !TARGET_64BIT) - error ("%<-mfentry%> is supported only for 64-bit CPUs"); } static void @@ -17251,8 +16779,7 @@ s390_can_inline_p (tree caller, tree callee) /* Flags which affect the ABI and in general prevent inlining. */ unsigned HOST_WIDE_INT must_match_masks - = (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP | MASK_SOFT_FLOAT - | MASK_LONG_DOUBLE_128 | MASK_OPT_VX); + = (MASK_HARD_DFP | MASK_SOFT_FLOAT | MASK_LONG_DOUBLE_128 | MASK_OPT_VX); /* Flags which we in general want to prevent inlining but accept for always_inline. */ @@ -17459,8 +16986,7 @@ s390_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, enum by_pieces_operation op ATTRIBUTE_UNUSED, bool speed_p ATTRIBUTE_UNUSED) { - return (size == 1 || size == 2 - || size == 4 || (TARGET_ZARCH && size == 8)); + return size == 1 || size == 2 || size == 4 || size == 8; } /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV hook. */ @@ -17566,7 +17092,7 @@ s390_preferred_simd_mode (scalar_mode mode) return V16QImode; default:; } - return word_mode; + return DImode; } /* Our hardware does not require vectors to be strictly aligned. */ @@ -17829,16 +17355,8 @@ s390_rawmemchr (machine_mode elt_mode, rtx dst, rtx src, rtx pat) emit_label (loop_end); LABEL_NUSES (loop_end) = 1; - if (TARGET_64BIT) - { - lens = convert_to_mode (V2DImode, lens, 1); - emit_insn (gen_vec_extractv2didi (offset, lens, GEN_INT (0))); - } - else - { - lens = convert_to_mode (V4SImode, lens, 1); - emit_insn (gen_vec_extractv4sisi (offset, lens, GEN_INT (1))); - } + lens = convert_to_mode (V2DImode, lens, 1); + emit_insn (gen_vec_extractv2didi (offset, lens, GEN_INT (0))); force_expand_binop (Pmode, add_optab, addr, offset, dst, 1, OPTAB_DIRECT); } @@ -17847,7 +17365,7 @@ s390_rawmemchr (machine_mode elt_mode, rtx dst, rtx src, rtx pat) static unsigned HOST_WIDE_INT s390_asan_shadow_offset (void) { - return TARGET_64BIT ? HOST_WIDE_INT_1U << 52 : HOST_WIDE_INT_UC (0x20000000); + return HOST_WIDE_INT_1U << 52; } #ifdef HAVE_GAS_HIDDEN @@ -17932,17 +17450,9 @@ s390_output_indirect_thunk_function (unsigned int regno, bool z10_p) fputs ("\t.machine push\n", asm_out_file); fputs ("\t.machine z10\n", asm_out_file); } - /* We use exrl even if -mzarch hasn't been specified on the - command line so we have to tell the assembler to accept - it. */ - if (!TARGET_ZARCH) - fputs ("\t.machinemode zarch\n", asm_out_file); fputs ("\texrl\t0,1f\n", asm_out_file); - if (!TARGET_ZARCH) - fputs ("\t.machinemode esa\n", asm_out_file); - if (!TARGET_CPU_Z10) fputs ("\t.machine pop\n", asm_out_file); } @@ -18853,8 +18363,6 @@ s390_c_mode_for_floating_type (enum tree_index ti) bool s390_bitint_type_info (int n, struct bitint_info *info) { - if (!TARGET_64BIT) - return false; if (n <= 8) info->limb_mode = QImode; else if (n <= 16) diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index 4764a87c7a6..2ca7689b096 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -53,8 +53,7 @@ enum processor_flags #define s390_tune_attr ((enum attr_cpu)(s390_tune > PROCESSOR_9175_Z17 ? PROCESSOR_9175_Z17 : s390_tune )) /* These flags indicate that the generated code should run on a cpu - providing the respective hardware facility regardless of the - current cpu mode (ESA or z/Architecture). */ + providing the respective hardware facility. */ #define TARGET_CPU_IEEE_FLOAT \ (s390_arch_flags & PF_IEEE_FLOAT) @@ -135,72 +134,46 @@ enum processor_flags providing the respective hardware facility when run in z/Architecture mode. */ -#define TARGET_LONG_DISPLACEMENT \ - (TARGET_ZARCH && TARGET_CPU_LONG_DISPLACEMENT) +#define TARGET_LONG_DISPLACEMENT TARGET_CPU_LONG_DISPLACEMENT #define TARGET_LONG_DISPLACEMENT_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) \ - && TARGET_CPU_LONG_DISPLACEMENT_P (opts)) -#define TARGET_EXTIMM \ - (TARGET_ZARCH && TARGET_CPU_EXTIMM) -#define TARGET_EXTIMM_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_EXTIMM_P (opts)) -#define TARGET_DFP \ - (TARGET_ZARCH && TARGET_CPU_DFP && TARGET_HARD_FLOAT) + (TARGET_CPU_LONG_DISPLACEMENT_P (opts)) +#define TARGET_EXTIMM TARGET_CPU_EXTIMM +#define TARGET_EXTIMM_P(opts) (TARGET_CPU_EXTIMM_P (opts)) +#define TARGET_DFP (TARGET_CPU_DFP && TARGET_HARD_FLOAT) #define TARGET_DFP_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_DFP_P (opts) \ + (TARGET_CPU_DFP_P (opts) \ && TARGET_HARD_FLOAT_P (opts->x_target_flags)) -#define TARGET_Z10 \ - (TARGET_ZARCH && TARGET_CPU_Z10) -#define TARGET_Z10_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z10_P (opts)) -#define TARGET_Z196 \ - (TARGET_ZARCH && TARGET_CPU_Z196) -#define TARGET_Z196_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z196_P (opts)) -#define TARGET_ZEC12 \ - (TARGET_ZARCH && TARGET_CPU_ZEC12) -#define TARGET_ZEC12_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_ZEC12_P (opts)) +#define TARGET_Z10 TARGET_CPU_Z10 +#define TARGET_Z10_P(opts) (TARGET_CPU_Z10_P (opts)) +#define TARGET_Z196 TARGET_CPU_Z196 +#define TARGET_Z196_P(opts) (TARGET_CPU_Z196_P (opts)) +#define TARGET_ZEC12 TARGET_CPU_ZEC12 +#define TARGET_ZEC12_P(opts) (TARGET_CPU_ZEC12_P (opts)) #define TARGET_HTM (TARGET_OPT_HTM) #define TARGET_HTM_P(opts) (TARGET_OPT_HTM_P (opts->x_target_flags)) -#define TARGET_Z13 \ - (TARGET_ZARCH && TARGET_CPU_Z13) -#define TARGET_Z13_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z13_P (opts)) -#define TARGET_VX \ - (TARGET_ZARCH && TARGET_CPU_VX && TARGET_OPT_VX && TARGET_HARD_FLOAT) +#define TARGET_Z13 TARGET_CPU_Z13 +#define TARGET_Z13_P(opts) (TARGET_CPU_Z13_P (opts)) +#define TARGET_VX (TARGET_CPU_VX && TARGET_OPT_VX && TARGET_HARD_FLOAT) #define TARGET_VX_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_VX_P (opts) \ + (TARGET_CPU_VX_P (opts) \ && TARGET_OPT_VX_P (opts->x_target_flags) \ && TARGET_HARD_FLOAT_P (opts->x_target_flags)) -#define TARGET_Z14 (TARGET_ZARCH && TARGET_CPU_Z14) -#define TARGET_Z14_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z14_P (opts)) -#define TARGET_VXE \ - (TARGET_VX && TARGET_CPU_VXE) -#define TARGET_VXE_P(opts) \ - (TARGET_VX_P (opts) && TARGET_CPU_VXE_P (opts)) -#define TARGET_Z15 (TARGET_ZARCH && TARGET_CPU_Z15) -#define TARGET_Z15_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z15_P (opts)) -#define TARGET_VXE2 \ - (TARGET_VX && TARGET_CPU_VXE2) -#define TARGET_VXE2_P(opts) \ - (TARGET_VX_P (opts) && TARGET_CPU_VXE2_P (opts)) -#define TARGET_Z16 (TARGET_ZARCH && TARGET_CPU_Z16) -#define TARGET_Z16_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z16_P (opts)) -#define TARGET_NNPA \ - (TARGET_ZARCH && TARGET_CPU_NNPA) -#define TARGET_NNPA_P(opts) \ - (TARGET_ZARCH_P (opts) && TARGET_CPU_NNPA_P (opts)) -#define TARGET_VXE3 \ - (TARGET_VX && TARGET_CPU_VXE3) -#define TARGET_VXE3_P(opts) \ - (TARGET_VX_P (opts) && TARGET_CPU_VXE3_P (opts)) -#define TARGET_Z17 (TARGET_ZARCH && TARGET_CPU_Z17) -#define TARGET_Z17_P(opts) \ - (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z17_P (opts)) +#define TARGET_Z14 TARGET_CPU_Z14 +#define TARGET_Z14_P(opts) (TARGET_CPU_Z14_P (opts)) +#define TARGET_VXE (TARGET_VX && TARGET_CPU_VXE) +#define TARGET_VXE_P(opts) (TARGET_VX_P (opts) && TARGET_CPU_VXE_P (opts)) +#define TARGET_Z15 TARGET_CPU_Z15 +#define TARGET_Z15_P(opts) (TARGET_CPU_Z15_P (opts)) +#define TARGET_VXE2 (TARGET_VX && TARGET_CPU_VXE2) +#define TARGET_VXE2_P(opts) (TARGET_VX_P (opts) && TARGET_CPU_VXE2_P (opts)) +#define TARGET_Z16 TARGET_CPU_Z16 +#define TARGET_Z16_P(opts) (TARGET_CPU_Z16_P (opts)) +#define TARGET_NNPA TARGET_CPU_NNPA +#define TARGET_NNPA_P(opts) (TARGET_CPU_NNPA_P (opts)) +#define TARGET_VXE3 (TARGET_VX && TARGET_CPU_VXE3) +#define TARGET_VXE3_P(opts) (TARGET_VX_P (opts) && TARGET_CPU_VXE3_P (opts)) +#define TARGET_Z17 TARGET_CPU_Z17 +#define TARGET_Z17_P(opts) (TARGET_CPU_Z17_P (opts)) #if defined(HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13) #define TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS TARGET_Z13 @@ -267,18 +240,12 @@ enum processor_flags /* Target CPU builtins. */ #define TARGET_CPU_CPP_BUILTINS() s390_cpu_cpp_builtins (pfile) -#ifdef DEFAULT_TARGET_64BIT -#define TARGET_DEFAULT (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP \ - | MASK_OPT_HTM | MASK_OPT_VX) -#else -#define TARGET_DEFAULT 0 -#endif +#define TARGET_DEFAULT (MASK_HARD_DFP | MASK_OPT_HTM | MASK_OPT_VX) /* Support for configure-time defaults. The order here is important so that -march doesn't squash the tune values. */ #define OPTION_DEFAULT_SPECS \ - { "mode", "%{!mesa:%{!mzarch:-m%(VALUE)}}" }, \ { "tune", "%{!mtune=*:%{!march=*:-mtune=%(VALUE)}}" }, \ { "arch", "%{!march=*:-march=%(VALUE)}" } @@ -290,22 +257,14 @@ extern const char *s390_host_detect_local_cpu (int argc, const char **argv); #define MARCH_MTUNE_NATIVE_SPECS \ "%{mtune=native:%=2 && (N) < 7) || (N) == 16 || (N) == 17 \ - || (TARGET_64BIT && ((N) == 18 || (N) == 19)) \ + || ((N) == 18 || (N) == 19) \ || (TARGET_VX && ((N) >= FIRST_VEC_ARG_REGNO && (N) <= LAST_VEC_ARG_REGNO))) @@ -776,7 +710,7 @@ CUMULATIVE_ARGS; /* Trampolines for nested functions. */ -#define TRAMPOLINE_SIZE (TARGET_64BIT ? 32 : 16) +#define TRAMPOLINE_SIZE 32 #define TRAMPOLINE_ALIGNMENT BITS_PER_WORD /* Addressing modes, and classification of registers for them. */ @@ -836,12 +770,12 @@ CUMULATIVE_ARGS; /* An integer expression for the size in bits of the largest integer machine mode that should actually be used. We allow pairs of registers. */ -#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_64BIT ? TImode : DImode) +#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TImode) /* The maximum number of bytes that a single instruction can move quickly between memory and registers or between two memory locations. */ -#define MOVE_MAX (TARGET_ZARCH ? 16 : 8) -#define MOVE_MAX_PIECES (TARGET_ZARCH ? 8 : 4) +#define MOVE_MAX 16 +#define MOVE_MAX_PIECES 8 #define MAX_MOVE_MAX 16 /* Don't perform CSE on function addresses. */ @@ -851,11 +785,8 @@ CUMULATIVE_ARGS; to split a struct move into several word-size moves. For S/390 only small values make sense here since struct moves are relatively cheap thanks to mvc so the small default value chosen for archs - with memmove patterns should be ok. But this value is multiplied - in tree-sra with UNITS_PER_WORD to make a decision so we adjust it - here to compensate for that factor since mvc costs exactly the same - on 31 and 64 bit. */ -#define MOVE_RATIO(speed) (TARGET_64BIT? 2 : 4) + with memmove patterns should be ok. */ +#define MOVE_RATIO(speed) 2 /* Sections. */ @@ -869,18 +800,6 @@ CUMULATIVE_ARGS; /* Output before writable (uninitialized) data. */ #define BSS_SECTION_ASM_OP ".bss" -/* S/390 constant pool breaks the devices in crtstuff.c to control section - in where code resides. We have to write it as asm code. */ -#ifndef __s390x__ -#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ - asm (SECTION_OP "\n\ - bras\t%r2,1f\n\ -0: .long\t" USER_LABEL_PREFIX #FUNC " - 0b\n\ -1: l\t%r3,0(%r2)\n\ - bas\t%r14,0(%r3,%r2)\n\ - .previous"); -#endif - /* Position independent code. */ @@ -945,7 +864,7 @@ CUMULATIVE_ARGS; #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ do { \ char buf[32]; \ - fputs (integer_asm_op (UNITS_PER_LONG, TRUE), (FILE)); \ + fputs (integer_asm_op (UNITS_PER_WORD, TRUE), (FILE)); \ ASM_GENERATE_INTERNAL_LABEL (buf, "L", (VALUE)); \ assemble_name ((FILE), buf); \ fputc ('\n', (FILE)); \ @@ -955,7 +874,7 @@ do { \ #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ do { \ char buf[32]; \ - fputs (integer_asm_op (UNITS_PER_LONG, TRUE), (FILE)); \ + fputs (integer_asm_op (UNITS_PER_WORD, TRUE), (FILE)); \ ASM_GENERATE_INTERNAL_LABEL (buf, "L", (VALUE)); \ assemble_name ((FILE), buf); \ fputc ('-', (FILE)); \ @@ -986,15 +905,12 @@ do { \ /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ -#define CASE_VECTOR_MODE (TARGET_64BIT ? DImode : SImode) +#define CASE_VECTOR_MODE DImode /* Specify the machine mode that pointers have. After generation of rtl, the compiler makes no further distinction between pointers and any other objects of this machine mode. */ -#define Pmode (TARGET_64BIT ? DImode : SImode) - -/* This is -1 for "pointer mode" extend. See ptr_extend in s390.md. */ -#define POINTERS_EXTEND_UNSIGNED -1 +#define Pmode DImode /* A function address in a call instruction is a byte address (for indexing purposes) so give the MEM rtx a byte's mode. */ diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 3b6ea26cbc2..587077b84fa 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -79,7 +79,6 @@ UNSPEC_GOTENT UNSPEC_GOT UNSPEC_GOTOFF - UNSPEC_PLT31 UNSPEC_PLTOFF ; Literal pool @@ -610,7 +609,7 @@ (const (symbol_ref "s390_tune_attr"))) (define_attr "cpu_facility" - "standard,ieee,zarch,cpu_zarch,longdisp,extimm,dfp,z10,z196,zEC12,vx,z13,z14,vxe,z15,vxe2,z16,nnpa,vxe3,z17" + "standard,ieee,longdisp,extimm,dfp,z10,z196,zEC12,vx,z13,z14,vxe,z15,vxe2,z16,nnpa,vxe3,z17" (const_string "standard")) (define_attr "enabled" "" @@ -621,10 +620,6 @@ (match_test "TARGET_CPU_IEEE_FLOAT")) (const_int 1) - (and (eq_attr "cpu_facility" "zarch") - (match_test "TARGET_ZARCH")) - (const_int 1) - (and (eq_attr "cpu_facility" "longdisp") (match_test "TARGET_LONG_DISPLACEMENT")) (const_int 1) @@ -637,9 +632,6 @@ (match_test "TARGET_DFP")) (const_int 1) - (eq_attr "cpu_facility" "cpu_zarch") - (const_int 1) - (and (eq_attr "cpu_facility" "z10") (match_test "TARGET_Z10")) (const_int 1) @@ -774,34 +766,20 @@ ; 32 bit int<->fp conversion instructions are available since VXE2 (z15). (define_mode_iterator VX_CONV_BFP [DF (SF "TARGET_VXE2")]) -;; These mode iterators allow 31-bit and 64-bit GPR patterns to be generated +;; These mode iterators allow 32-bit and 64-bit GPR patterns to be generated ;; from the same template. -(define_mode_iterator GPR [(DI "TARGET_ZARCH") SI]) -(define_mode_iterator DGPR [(TI "TARGET_ZARCH") DI SI]) +(define_mode_iterator TDSI [TI DI SI]) (define_mode_iterator DSI [DI SI]) (define_mode_iterator TDI [TI DI]) -;; These mode iterators allow :P to be used for patterns that operate on -;; pointer-sized quantities. Exactly one of the two alternatives will match. -(define_mode_iterator P [(DI "TARGET_64BIT") (SI "!TARGET_64BIT")]) - -;; These macros refer to the actual word_mode of the configuration. -;; This is equal to Pmode except on 31-bit machines in zarch mode. -(define_mode_iterator DW [(TI "TARGET_ZARCH") (DI "!TARGET_ZARCH")]) -(define_mode_iterator W [(DI "TARGET_ZARCH") (SI "!TARGET_ZARCH")]) - -;; Used by the umul pattern to express modes having half the size. -(define_mode_attr DWH [(TI "DI") (DI "SI")]) -(define_mode_attr dwh [(TI "di") (DI "si")]) - ;; This mode iterator allows the QI and HI patterns to be defined from ;; the same template. (define_mode_iterator HQI [HI QI]) ;; This mode iterator allows the integer patterns to be defined from the ;; same template. -(define_mode_iterator INT [(DI "TARGET_ZARCH") SI HI QI]) -(define_mode_iterator DINT [(TI "TARGET_ZARCH") DI SI HI QI]) +(define_mode_iterator INT [DI SI HI QI]) +(define_mode_iterator DINT [TI DI SI HI QI]) (define_mode_iterator SINT [SI HI QI]) ;; This iterator allows some 'ashift' and 'lshiftrt' pattern to be defined from @@ -893,12 +871,12 @@ (define_mode_attr _d [(TF "") (FPRX2 "") (DF "") (SF "") (TD "d") (DD "d") (SD "d")]) -;; In GPR and P templates, a constraint like "" will expand to "d" in DImode -;; and "0" in SImode. This allows to combine instructions of which the 31bit +;; In DSI templates, a constraint like "" will expand to "d" in DImode +;; and "0" in SImode. This allows to combine instructions of which the 32bit ;; version only operates on one register. (define_mode_attr d0 [(DI "d") (SI "0")]) -;; In combination with d0 this allows to combine instructions of which the 31bit +;; In combination with d0 this allows to combine instructions of which the 32bit ;; version only operates on one register. The DImode version needs an additional ;; register for the assembler output. (define_mode_attr 1 [(DI "%1,") (SI "")]) @@ -923,28 +901,24 @@ ;; in "RSE" for TImode and "RS" for DImode. (define_mode_attr TE [(TI "E") (DI "")]) -;; In GPR templates, a string like "lcr" will expand to "lcgr" in DImode +;; In DSI templates, a string like "lcr" will expand to "lcgr" in DImode ;; and "lcr" in SImode. (define_mode_attr g [(DI "g") (SI "")]) -;; In GPR templates, a string like "sl" will expand to "slg" in DImode +;; In DSI templates, a string like "sl" will expand to "slg" in DImode ;; and "sly" in SImode. This is useful because on 64bit the ..g instructions -;; were enhanced with long displacements whereas 31bit instructions got a ..y +;; were enhanced with long displacements whereas 32bit instructions got a ..y ;; variant for long displacements. (define_mode_attr y [(DI "g") (SI "y")]) -;; In DW templates, a string like "cds" will expand to "cdsg" in TImode -;; and "cds" in DImode. -(define_mode_attr tg [(TI "g") (DI "")]) - ;; In TDI templates, a string like "csg". (define_mode_attr td [(TI "d") (DI "")]) -;; In GPR templates, a string like "cdbr" will expand to "cgdbr" in DImode +;; In DSI templates, a string like "cdbr" will expand to "cgdbr" in DImode ;; and "cfdbr" in SImode. (define_mode_attr gf [(DI "g") (SI "f") (DF "g") (SF "f")]) -;; In GPR templates, a string like sll will expand to sllg for DI +;; In DSI templates, a string like sll will expand to sllg for DI ;; and sllk for SI. This way it is possible to merge the new z196 SI ;; 3 operands shift instructions into the existing patterns. (define_mode_attr gk [(DI "g") (SI "k")]) @@ -1039,8 +1013,7 @@ (match_operand:DI 1 "immediate_operand" "N0HD0,N1HD0,N2HD0,N3HD0")) (match_operand:DI 2 "immediate_operand" "n,n,n,n")))] - "TARGET_ZARCH - && s390_match_ccmode (insn, s390_tm_ccmode (operands[1], operands[2], true)) + "s390_match_ccmode (insn, s390_tm_ccmode (operands[1], operands[2], true)) && s390_single_part (operands[1], DImode, HImode, 0) >= 0" "@ tmhh\t%0,%i1 @@ -1089,7 +1062,7 @@ (match_operand:DI 1 "const0_operand" ""))) (set (match_operand:DI 2 "register_operand" "=d,d") (sign_extend:DI (match_dup 0)))] - "s390_match_ccmode(insn, CCSmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCSmode)" "ltgfr\t%2,%0 ltgf\t%2,%0" [(set_attr "op_type" "RRE,RXY") @@ -1099,9 +1072,9 @@ ; ltr, lt, ltgr, ltg (define_insn "*tst_extimm" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 0 "nonimmediate_operand" "d,T") - (match_operand:GPR 1 "const0_operand" ""))) - (set (match_operand:GPR 2 "register_operand" "=d,d") + (compare (match_operand:DSI 0 "nonimmediate_operand" "d,T") + (match_operand:DSI 1 "const0_operand" ""))) + (set (match_operand:DSI 2 "register_operand" "=d,d") (match_dup 0))] "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM" "@ @@ -1113,10 +1086,10 @@ ; Peephole to combine a load-and-test from volatile memory which combine does ; not do. (define_peephole2 - [(set (match_operand:GPR 0 "register_operand") - (match_operand:GPR 2 "memory_operand")) + [(set (match_operand:DSI 0 "register_operand") + (match_operand:DSI 2 "memory_operand")) (set (reg CC_REGNUM) - (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] + (compare (match_dup 0) (match_operand:DSI 1 "const0_operand")))] "s390_match_ccmode (peep2_next_insn (1), CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) @@ -1129,9 +1102,9 @@ ; ltr, lt, ltgr, ltg (define_insn "*tst_cconly_extimm" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 0 "nonimmediate_operand" "d,T") - (match_operand:GPR 1 "const0_operand" ""))) - (clobber (match_scratch:GPR 2 "=X,d"))] + (compare (match_operand:DSI 0 "nonimmediate_operand" "d,T") + (match_operand:DSI 1 "const0_operand" ""))) + (clobber (match_scratch:DSI 2 "=X,d"))] "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM" "@ ltr\t%0,%0 @@ -1145,7 +1118,7 @@ (match_operand:DI 1 "const0_operand" ""))) (set (match_operand:DI 2 "register_operand" "=d") (match_dup 0))] - "s390_match_ccmode(insn, CCSmode) && TARGET_ZARCH && !TARGET_EXTIMM" + "s390_match_ccmode(insn, CCSmode) && !TARGET_EXTIMM" "ltgr\t%2,%0" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_fr_E1")]) @@ -1179,20 +1152,11 @@ (set_attr "cpu_facility" "*,*,longdisp") (set_attr "z10prop" "z10_fr_E1,z10_super_E1,z10_super_E1")]) -(define_insn "*tstdi_cconly_31" - [(set (reg CC_REGNUM) - (compare (match_operand:DI 0 "register_operand" "d") - (match_operand:DI 1 "const0_operand" "")))] - "s390_match_ccmode(insn, CCSmode) && !TARGET_ZARCH" - "srda\t%0,0" - [(set_attr "op_type" "RS") - (set_attr "atype" "reg")]) - ; ltr, ltgr (define_insn "*tst_cconly2" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 0 "register_operand" "d") - (match_operand:GPR 1 "const0_operand" "")))] + (compare (match_operand:DSI 0 "register_operand" "d") + (match_operand:DSI 1 "const0_operand" "")))] "s390_match_ccmode(insn, CCSmode)" "ltr\t%0,%0" [(set_attr "op_type" "RR") @@ -1276,7 +1240,7 @@ [(set (reg CC_REGNUM) (compare (match_operand:DI 0 "nonimmediate_operand" "%d,d,d,d,Q") (match_operand:DI 1 "general_operand" "d,K,Os,T,BQ")))] - "s390_match_ccmode (insn, CCTmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCTmode)" "@ cgr\t%0,%1 cghi\t%0,%h1 @@ -1309,7 +1273,7 @@ (compare (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,T,b")) (match_operand:DI 0 "register_operand" "d, d,d")))] - "s390_match_ccmode(insn, CCSRmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCSRmode)" "@ cgfr\t%0,%1 cgf\t%0,%1 @@ -1348,7 +1312,7 @@ (define_insn "*cmpdi_ccs_signhi_rl" [(set (reg CC_REGNUM) (compare (sign_extend:DI (match_operand:HI 1 "memory_operand" "T,b")) - (match_operand:GPR 0 "register_operand" "d,d")))] + (match_operand:DSI 0 "register_operand" "d,d")))] "s390_match_ccmode(insn, CCSRmode) && TARGET_Z10" "@ cgh\t%0,%1 @@ -1360,9 +1324,9 @@ ; cr, chi, cfi, c, cy, cgr, cghi, cgfi, cg, chsi, cghsi, crl, cgrl (define_insn "*cmp_ccs" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 0 "nonimmediate_operand" + (compare (match_operand:DSI 0 "nonimmediate_operand" "d,d,Q, d,d,d,d") - (match_operand:GPR 1 "general_operand" + (match_operand:DSI 1 "general_operand" "d,K,K,Os,R,T,b")))] "s390_match_ccmode(insn, CCSmode)" "@ @@ -1395,11 +1359,11 @@ (set_attr "relative_long" "yes")]) ; clhrl, clghrl -(define_insn "*cmp_ccu_zerohi_rldi" +(define_insn "*cmp_ccu_zerohi_rldi" [(set (reg CC_REGNUM) - (compare (zero_extend:GPR (mem:HI (match_operand:DI 1 + (compare (zero_extend:DSI (mem:HI (match_operand:DI 1 "larl_operand" "X"))) - (match_operand:GPR 0 "register_operand" "d")))] + (match_operand:DSI 0 "register_operand" "d")))] "s390_match_ccmode(insn, CCURmode) && TARGET_Z10" "clhrl\t%0,%1" [(set_attr "op_type" "RIL") @@ -1412,7 +1376,7 @@ (compare (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,T,b")) (match_operand:DI 0 "register_operand" "d,d,d")))] - "s390_match_ccmode (insn, CCURmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCURmode)" "@ clgfr\t%0,%1 clgf\t%0,%1 @@ -1429,7 +1393,7 @@ "d, d,d,Q,d, Q,BQ") (match_operand:DI 1 "general_operand" "d,Op,b,D,T,BQ,Q")))] - "s390_match_ccmode (insn, CCUmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCUmode)" "@ clgr\t%0,%1 clgfi\t%0,%1 @@ -1540,7 +1504,7 @@ (match_operand:SPACESHIP_INT 1 "register_operand") (match_operand:SPACESHIP_INT 2 "register_operand") (match_operand:SI 3 "const_int_operand")] - "TARGET_Z13 && TARGET_64BIT" + "TARGET_Z13" "s390_expand_int_spaceship (operands[0], operands[1], operands[2], operands[3]); DONE;") (define_mode_iterator SPACESHIP_BFP [TF DF SF]) @@ -1549,7 +1513,7 @@ (match_operand:SPACESHIP_BFP 1 "register_operand") (match_operand:SPACESHIP_BFP 2 "register_operand") (match_operand:SI 3 "const_int_operand")] - "TARGET_Z13 && TARGET_64BIT && TARGET_HARD_FLOAT" + "TARGET_Z13 && TARGET_HARD_FLOAT" "s390_expand_fp_spaceship (operands[0], operands[1], operands[2], operands[3]); DONE;") @@ -1665,8 +1629,8 @@ (define_insn "*cmp_and_br_signed_" [(set (pc) (if_then_else (match_operator 0 "s390_signed_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d") - (match_operand:GPR 2 "nonmemory_operand" "d,C")]) + [(match_operand:DSI 1 "register_operand" "d,d") + (match_operand:DSI 2 "nonmemory_operand" "d,C")]) (label_ref (match_operand 3 "" "")) (pc))) (clobber (reg:CC CC_REGNUM))] @@ -1693,8 +1657,8 @@ (define_insn "*cmp_and_br_unsigned_" [(set (pc) (if_then_else (match_operator 0 "s390_unsigned_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d") - (match_operand:GPR 2 "nonmemory_operand" "d,I")]) + [(match_operand:DSI 1 "register_operand" "d,d") + (match_operand:DSI 2 "nonmemory_operand" "d,I")]) (label_ref (match_operand 3 "" "")) (pc))) (clobber (reg:CC CC_REGNUM))] @@ -1723,8 +1687,8 @@ (define_insn "*icmp_and_br_signed_" [(set (pc) (if_then_else (match_operator 0 "s390_signed_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d") - (match_operand:GPR 2 "nonmemory_operand" "d,C")]) + [(match_operand:DSI 1 "register_operand" "d,d") + (match_operand:DSI 2 "nonmemory_operand" "d,C")]) (pc) (label_ref (match_operand 3 "" "")))) (clobber (reg:CC CC_REGNUM))] @@ -1751,8 +1715,8 @@ (define_insn "*icmp_and_br_unsigned_" [(set (pc) (if_then_else (match_operator 0 "s390_unsigned_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d") - (match_operand:GPR 2 "nonmemory_operand" "d,I")]) + [(match_operand:DSI 1 "register_operand" "d,d") + (match_operand:DSI 2 "nonmemory_operand" "d,I")]) (pc) (label_ref (match_operand 3 "" "")))) (clobber (reg:CC CC_REGNUM))] @@ -1787,7 +1751,7 @@ (define_insn "*movti_bigconst" [(set (match_operand:TI 0 "register_operand" "=d") (match_operand:TI 1 "reload_const_wide_int_operand" ""))] - "TARGET_ZARCH" + "" "#") ; FIXME: More constants are possible by enabling jxx, jyy constraints @@ -1795,7 +1759,7 @@ (define_insn "movti" [(set (match_operand:TI 0 "nonimmediate_operand" "=d,S,v, v, v, v, v, v,v,d,v,R,d, d, d, d, d,o") (match_operand:TI 1 "general_operand" " S,d,v,j00,jm1,jyy,jxx,jzz,d,v,R,v,K,NxHD0,Os,NxSD0,dT,d"))] - "TARGET_ZARCH" + "" "@ lmg\t%0,%N0,%S1 stmg\t%1,%N1,%S0 @@ -1822,7 +1786,7 @@ (define_split [(set (match_operand:TI 0 "nonimmediate_operand" "") (match_operand:TI 1 "general_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && s390_split_ok_p (operands[0], operands[1], TImode, 0)" [(set (match_dup 2) (match_dup 4)) (set (match_dup 3) (match_dup 5))] @@ -1836,7 +1800,7 @@ (define_split [(set (match_operand:TI 0 "nonimmediate_operand" "") (match_operand:TI 1 "general_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && s390_split_ok_p (operands[0], operands[1], TImode, 1)" [(set (match_dup 2) (match_dup 4)) (set (match_dup 3) (match_dup 5))] @@ -1853,7 +1817,7 @@ (define_split [(set (match_operand:TI 0 "register_operand" "") (match_operand:TI 1 "memory_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && !VECTOR_REG_P (operands[0]) && !s_operand (operands[1], VOIDmode)" [(set (match_dup 0) (match_dup 1))] @@ -1892,30 +1856,30 @@ ; Unfortunately there is no such variant for QI, TI and FP mode moves. ; These patterns are also used for unaligned SI and DI accesses. -(define_expand "reload_tomem_z10" +(define_expand "reloaddi_tomem_z10" [(parallel [(match_operand:ALL 0 "memory_operand" "") (match_operand:ALL 1 "register_operand" "=d") - (match_operand:P 2 "register_operand" "=&a")])] + (match_operand:DI 2 "register_operand" "=&a")])] "TARGET_Z10" { s390_reload_symref_address (operands[1], operands[0], operands[2], 1); DONE; }) -(define_expand "reload_toreg_z10" +(define_expand "reloaddi_toreg_z10" [(parallel [(match_operand:ALL 0 "register_operand" "=d") (match_operand:ALL 1 "memory_operand" "") - (match_operand:P 2 "register_operand" "=a")])] + (match_operand:DI 2 "register_operand" "=a")])] "TARGET_Z10" { s390_reload_symref_address (operands[0], operands[1], operands[2], 0); DONE; }) -(define_expand "reload_larl_odd_addend_z10" - [(parallel [(match_operand:P 0 "register_operand" "=d") - (match_operand:P 1 "larl_operand" "") - (match_operand:P 2 "register_operand" "=a")])] +(define_expand "reloaddi_larl_odd_addend_z10" + [(parallel [(match_operand:DI 0 "register_operand" "=d") + (match_operand:DI 1 "larl_operand" "") + (match_operand:DI 2 "register_operand" "=a")])] "TARGET_Z10" { s390_reload_larl_operand (operands[0], operands[1], operands[2]); @@ -1924,10 +1888,10 @@ ; Handles loading a PLUS (load address) expression -(define_expand "reload_plus" - [(parallel [(match_operand:P 0 "register_operand" "=a") - (match_operand:P 1 "s390_plus_operand" "") - (match_operand:P 2 "register_operand" "=&a")])] +(define_expand "reloaddi_plus" + [(parallel [(match_operand:DI 0 "register_operand" "=a") + (match_operand:DI 1 "s390_plus_operand" "") + (match_operand:DI 2 "register_operand" "=&a")])] "" { s390_expand_plus_operand (operands[0], operands[1], operands[2]); @@ -1943,10 +1907,10 @@ ; - non-offsetable memory accesses for multiword moves ; - full vector reg moves with long displacements -(define_expand "reload_la_in" - [(parallel [(match_operand 0 "register_operand" "") - (match_operand 1 "" "") - (match_operand:P 2 "register_operand" "=&a")])] +(define_expand "reloaddi_la_in" + [(parallel [(match_operand 0 "register_operand" "") + (match_operand 1 "" "") + (match_operand:DI 2 "register_operand" "=&a")])] "" { gcc_assert (MEM_P (operands[1])); @@ -1956,10 +1920,10 @@ DONE; }) -(define_expand "reload_la_out" - [(parallel [(match_operand 0 "" "") - (match_operand 1 "register_operand" "") - (match_operand:P 2 "register_operand" "=&a")])] +(define_expand "reloaddi_la_out" + [(parallel [(match_operand 0 "" "") + (match_operand 1 "register_operand" "") + (match_operand:DI 2 "register_operand" "=&a")])] "" { gcc_assert (MEM_P (operands[0])); @@ -1969,10 +1933,10 @@ DONE; }) -(define_expand "reload_PIC_addr" - [(parallel [(match_operand 0 "register_operand" "=d") - (match_operand 1 "larl_operand" "") - (match_operand:P 2 "register_operand" "=a")])] +(define_expand "reloaddi_PIC_addr" + [(parallel [(match_operand 0 "register_operand" "=d") + (match_operand 1 "larl_operand" "") + (match_operand:DI 2 "register_operand" "=a")])] "" { rtx new_rtx = legitimize_pic_address (operands[1], operands[2]); @@ -1989,11 +1953,10 @@ "" { /* Handle symbolic constants. */ - if (TARGET_64BIT - && (SYMBOLIC_CONST (operands[1]) - || (GET_CODE (operands[1]) == PLUS - && XEXP (operands[1], 0) == pic_offset_table_rtx - && SYMBOLIC_CONST (XEXP (operands[1], 1))))) + if (SYMBOLIC_CONST (operands[1]) + || (GET_CODE (operands[1]) == PLUS + && XEXP (operands[1], 0) == pic_offset_table_rtx + && SYMBOLIC_CONST (XEXP (operands[1], 1)))) emit_symbolic_move (operands); }) @@ -2002,7 +1965,7 @@ "=d, d, d, d, d, d, d, d,f,d,!*f,d,d,d,d,T,!*f,!*f,!*f,!R,!T,b,Q,d,t,Q,t,v,v,v,d,v,R,d") (match_operand:DI 1 "general_operand" " K,N0HD0,N1HD0,N2HD0,N3HD0,Os,N0SD0,N1SD0,d,f,j00,L,b,d,T,d, *f, R, T,*f,*f,d,K,t,d,t,Q,K,v,d,v,R,v,ZL"))] - "TARGET_ZARCH" + "" "@ lghi\t%0,%h1 llihh\t%0,%i1 @@ -2092,7 +2055,7 @@ [(set (match_operand:DI 0 "register_operand" "=d") (ashift:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "a")) (const_int LXAMODEITER)))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "lxa\t%0,0(%1,0)" [(set_attr "op_type" "RXY")]) @@ -2102,7 +2065,7 @@ (ashift:DI (sign_extend:DI (plus:SI (match_operand:SI 1 "register_operand" "a") (match_operand:SI 2 "const_int_operand"))) (const_int LXAMODEITER)))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "lxa\t%0,%2(%1,0)" [(set_attr "op_type" "RXY")]) @@ -2112,7 +2075,7 @@ (plus:DI (ashift:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "a")) (const_int LXAMODEITER)) (match_operand:DI 2 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "lxa\t%0,0(%1,%2)" [(set_attr "op_type" "RXY")]) @@ -2123,7 +2086,7 @@ (match_operand:SI 2 "const_int_operand"))) (const_int LXAMODEITER)) (match_operand:DI 3 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "lxa\t%0,%2(%1,%3)" [(set_attr "op_type" "RXY")]) @@ -2132,7 +2095,7 @@ (plus:DI (sign_extend:DI (plus:SI (match_operand:SI 1 "register_operand" "a") (match_operand:SI 2 "const_int_operand"))) (match_operand:DI 3 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "lxab\t%0,%2(%1,%3)" [(set_attr "op_type" "RXY")]) @@ -2149,7 +2112,7 @@ 0) (const_int LXAMODEITER)) (const_int )))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "llxa\t%0,%2(%1,0)" [(set_attr "op_type" "RXY")]) @@ -2160,7 +2123,7 @@ (const_int LXAMODEITER)) (const_int )) (match_operand:DI 2 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "llxa\t%0,0(%1,%2)" [(set_attr "op_type" "RXY")]) @@ -2173,7 +2136,7 @@ (const_int LXAMODEITER)) (const_int )) (match_operand:DI 3 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "llxa\t%0,%2(%1,%3)" [(set_attr "op_type" "RXY")]) @@ -2182,29 +2145,20 @@ (plus:DI (zero_extend:DI (plus:SI (match_operand:SI 1 "register_operand" "a") (match_operand:SI 2 "const_int_operand"))) (match_operand:DI 3 "register_operand" "a")))] - "TARGET_Z17 && TARGET_64BIT && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" + "TARGET_Z17 && INTVAL (operands[2]) >= -0x80000 && INTVAL (operands[2]) <= 0x7FFFF" "llxab\t%0,%2(%1,%3)" [(set_attr "op_type" "RXY")]) ; Splitters for loading TLS pointer from UNSPEC_GET_TP. -; UNSPEC_GET_TP is used instead of %a0:P, since the latter is a hard register, +; UNSPEC_GET_TP is used instead of %a0:DI, since the latter is a hard register, ; and those are not handled by Partial Redundancy Elimination (gcse.cc), which ; results in generation of redundant thread pointer loads. -(define_insn_and_split "*get_tp_31" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(match_operand:SI 1 "register_operand" "t")] - UNSPEC_GET_TP))] - "" - "#" - "&& reload_completed" - [(set (match_dup 0) (match_dup 1))]) - (define_insn_and_split "*get_tp_64" [(set (match_operand:DI 0 "register_operand" "=r") (unspec:DI [(match_operand:DI 1 "register_operand" "t")] UNSPEC_GET_TP))] - "TARGET_ZARCH" + "" "#" "&& reload_completed" [(set (match_dup 2) (match_dup 3)) @@ -2218,7 +2172,7 @@ (define_split [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "register_operand" ""))] - "TARGET_ZARCH && ACCESS_REG_P (operands[0]) && reload_completed + "ACCESS_REG_P (operands[0]) && reload_completed && dead_or_set_p (insn, operands[1])" [(set (match_dup 3) (match_dup 2)) (set (match_dup 1) (lshiftrt:DI (match_dup 1) (const_int 32))) @@ -2229,7 +2183,7 @@ (define_split [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "register_operand" ""))] - "TARGET_ZARCH && ACCESS_REG_P (operands[0]) && reload_completed + "ACCESS_REG_P (operands[0]) && reload_completed && !dead_or_set_p (insn, operands[1])" [(set (match_dup 3) (match_dup 2)) (set (match_dup 1) (rotate:DI (match_dup 1) (const_int 32))) @@ -2238,95 +2192,10 @@ "operands[2] = gen_lowpart (SImode, operands[1]); s390_split_access_reg (operands[0], &operands[3], &operands[4]);") -(define_insn "*movdi_31" - [(set (match_operand:DI 0 "nonimmediate_operand" - "=d,d,Q,S,d ,o,!*f,!*f,!*f,!*f,!R,!T,d") - (match_operand:DI 1 "general_operand" - " Q,S,d,d,dPT,d, *f, R, T,j00,*f,*f,b"))] - "!TARGET_ZARCH" - "@ - lm\t%0,%N0,%S1 - lmy\t%0,%N0,%S1 - stm\t%1,%N1,%S0 - stmy\t%1,%N1,%S0 - # - # - ldr\t%0,%1 - ld\t%0,%1 - ldy\t%0,%1 - lzdr\t%0 - std\t%1,%0 - stdy\t%1,%0 - #" - [(set_attr "op_type" "RS,RSY,RS,RSY,*,*,RR,RX,RXY,RRE,RX,RXY,*") - (set_attr "type" "lm,lm,stm,stm,*,*,floaddf,floaddf,floaddf,fsimpdf,fstoredf,fstoredf,*") - (set_attr "cpu_facility" "*,longdisp,*,longdisp,*,*,*,*,longdisp,*,*,longdisp,z10")]) - -; For a load from a symbol ref we can use one of the target registers -; together with larl to load the address. -(define_split - [(set (match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "memory_operand" ""))] - "!TARGET_ZARCH && reload_completed && TARGET_Z10 - && larl_operand (XEXP (operands[1], 0), SImode)" - [(set (match_dup 2) (match_dup 3)) - (set (match_dup 0) (match_dup 1))] -{ - operands[2] = operand_subword (operands[0], 1, 0, DImode); - operands[3] = XEXP (operands[1], 0); - operands[1] = replace_equiv_address (operands[1], operands[2]); -}) - -(define_split - [(set (match_operand:DI 0 "nonimmediate_operand" "") - (match_operand:DI 1 "general_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !s_operand (operands[0], DImode) - && !s_operand (operands[1], DImode) - && s390_split_ok_p (operands[0], operands[1], DImode, 0)" - [(set (match_dup 2) (match_dup 4)) - (set (match_dup 3) (match_dup 5))] -{ - operands[2] = operand_subword (operands[0], 0, 0, DImode); - operands[3] = operand_subword (operands[0], 1, 0, DImode); - operands[4] = operand_subword (operands[1], 0, 0, DImode); - operands[5] = operand_subword (operands[1], 1, 0, DImode); -}) - -(define_split - [(set (match_operand:DI 0 "nonimmediate_operand" "") - (match_operand:DI 1 "general_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !s_operand (operands[0], DImode) - && !s_operand (operands[1], DImode) - && s390_split_ok_p (operands[0], operands[1], DImode, 1)" - [(set (match_dup 2) (match_dup 4)) - (set (match_dup 3) (match_dup 5))] -{ - operands[2] = operand_subword (operands[0], 1, 0, DImode); - operands[3] = operand_subword (operands[0], 0, 0, DImode); - operands[4] = operand_subword (operands[1], 1, 0, DImode); - operands[5] = operand_subword (operands[1], 0, 0, DImode); -}) - -(define_split - [(set (match_operand:DI 0 "register_operand" "") - (match_operand:DI 1 "memory_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !FP_REG_P (operands[0]) - && !s_operand (operands[1], VOIDmode)" - [(set (match_dup 0) (match_dup 1))] -{ - rtx addr = operand_subword (operands[0], 1, 0, DImode); - s390_load_address (addr, XEXP (operands[1], 0)); - operands[1] = replace_equiv_address (operands[1], addr); -}) - (define_peephole2 [(set (match_operand:DI 0 "register_operand" "") (mem:DI (match_operand 1 "address_operand" "")))] - "TARGET_ZARCH - && !FP_REG_P (operands[0]) + "!FP_REG_P (operands[0]) && GET_CODE (operands[1]) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P (operands[1]) && get_pool_mode (operands[1]) == DImode @@ -2337,7 +2206,7 @@ (define_insn "*la_64" [(set (match_operand:DI 0 "register_operand" "=d,d") (match_operand:QI 1 "address_operand" "ZR,ZT"))] - "TARGET_64BIT" + "" "@ la\t%0,%a1 lay\t%0,%a1" @@ -2351,8 +2220,7 @@ [(set (match_operand:DI 0 "register_operand" "") (match_operand:QI 1 "address_operand" "")) (clobber (reg:CC CC_REGNUM))])] - "TARGET_64BIT - && preferred_la_operand_p (operands[1], const0_rtx)" + "preferred_la_operand_p (operands[1], const0_rtx)" [(set (match_dup 0) (match_dup 1))] "") @@ -2364,8 +2232,7 @@ (plus:DI (match_dup 0) (match_operand:DI 2 "nonmemory_operand" ""))) (clobber (reg:CC CC_REGNUM))])] - "TARGET_64BIT - && !reg_overlap_mentioned_p (operands[0], operands[2]) + "!reg_overlap_mentioned_p (operands[0], operands[2]) && preferred_la_operand_p (operands[1], operands[2])" [(set (match_dup 0) (plus:DI (match_dup 1) (match_dup 2)))] "") @@ -2376,8 +2243,7 @@ (define_peephole2 [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "memory_operand" ""))] - "TARGET_64BIT - && TARGET_EXTIMM + "TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && s390_const_int_pool_entry_p (operands[1], nullptr) && peep2_reg_dead_p (1, gen_rtx_REG (CCmode, CC_REGNUM))" @@ -2407,37 +2273,12 @@ ; movsi instruction pattern(s). ; -(define_expand "movsi" - [(set (match_operand:SI 0 "general_operand" "") - (match_operand:SI 1 "general_operand" ""))] - "" -{ - /* Handle symbolic constants. */ - if (!TARGET_64BIT - && (SYMBOLIC_CONST (operands[1]) - || (GET_CODE (operands[1]) == PLUS - && XEXP (operands[1], 0) == pic_offset_table_rtx - && SYMBOLIC_CONST (XEXP(operands[1], 1))))) - emit_symbolic_move (operands); -}) - -(define_insn "*movsi_larl" - [(set (match_operand:SI 0 "register_operand" "=d") - (match_operand:SI 1 "larl_operand" "X"))] - "!TARGET_64BIT - && !FP_REG_P (operands[0])" - "larl\t%0,%1" - [(set_attr "op_type" "RIL") - (set_attr "type" "larl") - (set_attr "z10prop" "z10_fwd_A1") - (set_attr "relative_long" "yes")]) - -(define_insn "*movsi_zarch" +(define_insn "movsi" [(set (match_operand:SI 0 "nonimmediate_operand" "=d, d, d, d,d,d,d,d,d,R,T,!*f,!*f,!*f,!*f,!*f,!R,!T,d,t,Q,b,Q,t,v,v,v,d,v,R") (match_operand:SI 1 "general_operand" " K,N0HS0,N1HS0,Os,L,b,d,R,T,d,d, *f, *f, R, R, T,*f,*f,t,d,t,d,K,Q,K,v,d,v,R,v"))] - "TARGET_ZARCH" + "" "@ lhi\t%0,%h1 llilh\t%0,%i1 @@ -2525,31 +2366,6 @@ *,*,*,*,*,*,*,*,*,*, *,yes,*,*,*,*,*,*,*,*")]) -(define_insn "*movsi_esa" - [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,R,!*f,!*f,!*f,!*f,!R,d,t,Q,t") - (match_operand:SI 1 "general_operand" "K,d,R,d, *f, *f, R, R,*f,t,d,t,Q"))] - "!TARGET_ZARCH" - "@ - lhi\t%0,%h1 - lr\t%0,%1 - l\t%0,%1 - st\t%1,%0 - ldr\t%0,%1 - ler\t%0,%1 - lde\t%0,%1 - le\t%0,%1 - ste\t%1,%0 - ear\t%0,%1 - sar\t%0,%1 - stam\t%1,%1,%S0 - lam\t%0,%0,%S1" - [(set_attr "op_type" "RI,RR,RX,RX,RR,RR,RXE,RX,RX,RRE,RRE,RS,RS") - (set_attr "type" "*,lr,load,store,floadsf,floadsf,floadsf,floadsf,fstoresf,*,*,*,*") - (set_attr "z10prop" "z10_fwd_A1,z10_fr_E1,z10_fwd_A3,z10_rec,*,*,*,*,*,z10_super_E1, - z10_super,*,*") - (set_attr "cpu_facility" "*,*,*,*,vx,*,vx,*,*,*,*,*,*") -]) - (define_peephole2 [(set (match_operand:SI 0 "register_operand" "") (mem:SI (match_operand 1 "address_operand" "")))] @@ -2561,82 +2377,6 @@ [(set (match_dup 0) (match_dup 2))] "operands[2] = get_pool_constant (operands[1]);") -(define_insn "*la_31" - [(set (match_operand:SI 0 "register_operand" "=d,d") - (match_operand:QI 1 "address_operand" "ZR,ZT"))] - "!TARGET_64BIT && legitimate_la_operand_p (operands[1])" - "@ - la\t%0,%a1 - lay\t%0,%a1" - [(set_attr "op_type" "RX,RXY") - (set_attr "type" "la") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "z10prop" "z10_fwd_A1,z10_fwd_A1")]) - -(define_peephole2 - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (match_operand:QI 1 "address_operand" "")) - (clobber (reg:CC CC_REGNUM))])] - "!TARGET_64BIT - && preferred_la_operand_p (operands[1], const0_rtx)" - [(set (match_dup 0) (match_dup 1))] - "") - -(define_peephole2 - [(set (match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "register_operand" "")) - (parallel - [(set (match_dup 0) - (plus:SI (match_dup 0) - (match_operand:SI 2 "nonmemory_operand" ""))) - (clobber (reg:CC CC_REGNUM))])] - "!TARGET_64BIT - && !reg_overlap_mentioned_p (operands[0], operands[2]) - && preferred_la_operand_p (operands[1], operands[2])" - [(set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))] - "") - -(define_insn "*la_31_and" - [(set (match_operand:SI 0 "register_operand" "=d,d") - (and:SI (match_operand:QI 1 "address_operand" "ZR,ZT") - (const_int 2147483647)))] - "!TARGET_64BIT" - "@ - la\t%0,%a1 - lay\t%0,%a1" - [(set_attr "op_type" "RX,RXY") - (set_attr "type" "la") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "z10prop" "z10_fwd_A1,z10_fwd_A1")]) - -(define_insn_and_split "*la_31_and_cc" - [(set (match_operand:SI 0 "register_operand" "=d") - (and:SI (match_operand:QI 1 "address_operand" "p") - (const_int 2147483647))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_64BIT" - "#" - "&& reload_completed" - [(set (match_dup 0) - (and:SI (match_dup 1) (const_int 2147483647)))] - "" - [(set_attr "op_type" "RX") - (set_attr "type" "la")]) - -(define_insn "force_la_31" - [(set (match_operand:SI 0 "register_operand" "=d,d") - (match_operand:QI 1 "address_operand" "ZR,ZT")) - (use (const_int 0))] - "!TARGET_64BIT" - "@ - la\t%0,%a1 - lay\t%0,%a1" - [(set_attr "op_type" "RX") - (set_attr "type" "la") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "z10prop" "z10_fwd_A1,z10_fwd_A1")]) - ; ; movhi instruction pattern(s). ; @@ -2714,7 +2454,7 @@ { /* On z/Architecture, zero-extending from memory to register is just as fast as a QImode load. */ - if (TARGET_ZARCH && optimize && can_create_pseudo_p () + if (optimize && can_create_pseudo_p () && register_operand (operands[0], VOIDmode) && GET_CODE (operands[1]) == MEM) { @@ -2799,7 +2539,7 @@ (define_insn "movstrictsi" [(set (strict_low_part (match_operand:SI 0 "subreg_register_operand" "+d,d,d,d")) (match_operand:SI 1 "general_operand" "d,R,T,t"))] - "TARGET_ZARCH" + "" "@ lr\t%0,%1 l\t%0,%1 @@ -2823,7 +2563,7 @@ (define_insn "*mov_64" [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o,d,S, d,o") (match_operand:TD_TF 1 "general_operand" " G,f,o,f,S,d,dT,d"))] - "TARGET_ZARCH" + "" "@ lzxr\t%0 lxr\t%0,%1 @@ -2837,25 +2577,12 @@ (set_attr "type" "fsimptf,fsimptf,*,*,lm,stm,*,*") (set_attr "cpu_facility" "z196,*,*,*,*,*,*,*")]) -(define_insn "*mov_31" - [(set (match_operand:TD_TF 0 "nonimmediate_operand" "=f,f,f,o") - (match_operand:TD_TF 1 "general_operand" " G,f,o,f"))] - "!TARGET_ZARCH" - "@ - lzxr\t%0 - lxr\t%0,%1 - # - #" - [(set_attr "op_type" "RRE,RRE,*,*") - (set_attr "type" "fsimptf,fsimptf,*,*") - (set_attr "cpu_facility" "z196,*,*,*")]) - ; TFmode in GPRs splitters (define_split [(set (match_operand:TD_TF 0 "nonimmediate_operand" "") (match_operand:TD_TF 1 "general_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && !s_operand (operands[0], mode) && !s_operand (operands[1], mode) && s390_split_ok_p (operands[0], operands[1], mode, 0)" @@ -2871,7 +2598,7 @@ (define_split [(set (match_operand:TD_TF 0 "nonimmediate_operand" "") (match_operand:TD_TF 1 "general_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && !s_operand (operands[0], mode) && !s_operand (operands[1], mode) && s390_split_ok_p (operands[0], operands[1], mode, 1)" @@ -2887,7 +2614,7 @@ (define_split [(set (match_operand:TD_TF 0 "register_operand" "") (match_operand:TD_TF 1 "memory_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && GENERAL_REG_P (operands[0]) && !s_operand (operands[1], VOIDmode)" [(set (match_dup 0) (match_dup 1))] @@ -2979,7 +2706,7 @@ (define_insn "*mov_64" [(set (match_operand:DD_DF 0 "nonimmediate_operand" "=f,f,f,f,R,T,d,d,d,d,b,T") (match_operand:DD_DF 1 "general_operand" " G,f,R,T,f,f,G,d,b,T,d,d"))] - "TARGET_ZARCH" + "" "@ lzdr\t%0 ldr\t%0,%1 @@ -3000,75 +2727,6 @@ (set_attr "cpu_facility" "z196,*,*,longdisp,*,longdisp,*,*,z10,*,z10,*") (set_attr "relative_long" "*,*,*,*,*,*,*,*,yes,*,*,*")]) -(define_insn "*mov_31" - [(set (match_operand:DD_DF 0 "nonimmediate_operand" - "=f,f,f,f,R,T,d,d,Q,S, d,o") - (match_operand:DD_DF 1 "general_operand" - " G,f,R,T,f,f,Q,S,d,d,dPT,d"))] - "!TARGET_ZARCH" - "@ - lzdr\t%0 - ldr\t%0,%1 - ld\t%0,%1 - ldy\t%0,%1 - std\t%1,%0 - stdy\t%1,%0 - lm\t%0,%N0,%S1 - lmy\t%0,%N0,%S1 - stm\t%1,%N1,%S0 - stmy\t%1,%N1,%S0 - # - #" - [(set_attr "op_type" "RRE,RR,RX,RXY,RX,RXY,RS,RSY,RS,RSY,*,*") - (set_attr "type" "fsimpdf,fload,fload,fload, - fstore,fstore,lm,lm,stm,stm,*,*") - (set_attr "cpu_facility" "z196,*,*,longdisp,*,longdisp,*,longdisp,*,longdisp,*,*")]) - -(define_split - [(set (match_operand:DD_DF 0 "nonimmediate_operand" "") - (match_operand:DD_DF 1 "general_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !s_operand (operands[0], mode) - && !s_operand (operands[1], mode) - && s390_split_ok_p (operands[0], operands[1], mode, 0)" - [(set (match_dup 2) (match_dup 4)) - (set (match_dup 3) (match_dup 5))] -{ - operands[2] = operand_subword (operands[0], 0, 0, mode); - operands[3] = operand_subword (operands[0], 1, 0, mode); - operands[4] = operand_subword (operands[1], 0, 0, mode); - operands[5] = operand_subword (operands[1], 1, 0, mode); -}) - -(define_split - [(set (match_operand:DD_DF 0 "nonimmediate_operand" "") - (match_operand:DD_DF 1 "general_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !s_operand (operands[0], mode) - && !s_operand (operands[1], mode) - && s390_split_ok_p (operands[0], operands[1], mode, 1)" - [(set (match_dup 2) (match_dup 4)) - (set (match_dup 3) (match_dup 5))] -{ - operands[2] = operand_subword (operands[0], 1, 0, mode); - operands[3] = operand_subword (operands[0], 0, 0, mode); - operands[4] = operand_subword (operands[1], 1, 0, mode); - operands[5] = operand_subword (operands[1], 0, 0, mode); -}) - -(define_split - [(set (match_operand:DD_DF 0 "register_operand" "") - (match_operand:DD_DF 1 "memory_operand" ""))] - "!TARGET_ZARCH && reload_completed - && !FP_REG_P (operands[0]) - && !s_operand (operands[1], VOIDmode)" - [(set (match_dup 0) (match_dup 1))] -{ - rtx addr = operand_subword (operands[0], 1, 0, mode); - s390_load_address (addr, XEXP (operands[1], 0)); - operands[1] = replace_equiv_address (operands[1], addr); -}) - ; ; mov(sf|sd) instruction pattern(s). ; @@ -3116,7 +2774,7 @@ (define_insn "movhf" [(set (match_operand:HF 0 "nonimmediate_operand") (match_operand:HF 1 "general_operand"))] - "TARGET_64BIT" + "" {@ [ cons: =0, 1; attrs: op_type, cpu_facility ] [ v , v ; VRR , vx ] vlr\t%v0,%v1 [ v , d ; VRS , vx ] vlvgh\t%v0,%1,0 @@ -3294,7 +2952,7 @@ count = INTVAL (operands[2]); regno = REGNO (operands[0]); mode = GET_MODE (operands[0]); - if (mode != SImode && (!TARGET_ZARCH || mode != DImode)) + if (mode != SImode && mode != DImode) FAIL; operands[3] = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count)); @@ -3333,7 +2991,7 @@ [(match_parallel 0 "load_multiple_operation" [(set (match_operand:DI 1 "register_operand" "=r") (match_operand:DI 2 "s_operand" "S"))])] - "reload_completed && TARGET_ZARCH" + "reload_completed" { int words = XVECLEN (operands[0], 0); operands[0] = gen_rtx_REG (DImode, REGNO (operands[1]) + words - 1); @@ -3385,7 +3043,7 @@ count = INTVAL (operands[2]); regno = REGNO (operands[1]); mode = GET_MODE (operands[1]); - if (mode != SImode && (!TARGET_ZARCH || mode != DImode)) + if (mode != SImode && mode != DImode) FAIL; operands[3] = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count)); @@ -3425,7 +3083,7 @@ [(match_parallel 0 "store_multiple_operation" [(set (match_operand:DI 1 "s_operand" "=S") (match_operand:DI 2 "register_operand" "r"))])] - "reload_completed && TARGET_ZARCH" + "reload_completed" { int words = XVECLEN (operands[0], 0); operands[0] = gen_rtx_REG (DImode, REGNO (operands[2]) + words - 1); @@ -3481,35 +3139,35 @@ ; strlenM instruction pattern(s). ; -(define_expand "strlen" - [(match_operand:P 0 "register_operand" "") ; result +(define_expand "strlendi" + [(match_operand:DI 0 "register_operand" "") ; result (match_operand:BLK 1 "memory_operand" "") ; input string (match_operand:SI 2 "immediate_operand" "") ; search character (match_operand:SI 3 "immediate_operand" "")] ; known alignment "" { if (!TARGET_VX || operands[2] != const0_rtx) - emit_insn (gen_strlen_srst (operands[0], operands[1], - operands[2], operands[3])); + emit_insn (gen_strlen_srstdi (operands[0], operands[1], + operands[2], operands[3])); else s390_expand_vec_strlen (operands[0], operands[1], operands[3]); DONE; }) -(define_expand "strlen_srst" +(define_expand "strlen_srstdi" [(set (reg:SI 0) (match_operand:SI 2 "immediate_operand" "")) (parallel [(set (match_dup 4) - (unspec:P [(const_int 0) + (unspec:DI [(const_int 0) (match_operand:BLK 1 "memory_operand" "") (reg:SI 0) (match_operand 3 "immediate_operand" "")] UNSPEC_SRST)) - (clobber (scratch:P)) + (clobber (scratch:DI)) (clobber (reg:CC CC_REGNUM))]) (parallel - [(set (match_operand:P 0 "register_operand" "") - (minus:P (match_dup 4) (match_dup 5))) + [(set (match_operand:DI 0 "register_operand" "") + (minus:DI (match_dup 4) (match_dup 5))) (clobber (reg:CC CC_REGNUM))])] "" { @@ -3519,13 +3177,13 @@ operands[1] = replace_equiv_address (operands[1], operands[5]); }) -(define_insn "*strlen" - [(set (match_operand:P 0 "register_operand" "=a") - (unspec:P [(match_operand:P 2 "general_operand" "0") - (mem:BLK (match_operand:P 3 "register_operand" "1")) +(define_insn "*strlendi" + [(set (match_operand:DI 0 "register_operand" "=a") + (unspec:DI [(match_operand:DI 2 "general_operand" "0") + (mem:BLK (match_operand:DI 3 "register_operand" "1")) (reg:SI 0) (match_operand 4 "immediate_operand" "")] UNSPEC_SRST)) - (clobber (match_scratch:P 1 "=a")) + (clobber (match_scratch:DI 1 "=a")) (clobber (reg:CC CC_REGNUM))] "" "srst\t%0,%1\;jo\t.-4" @@ -3566,12 +3224,12 @@ operands[4] = addr2; }) -(define_insn "*cmpstr" - [(clobber (match_operand:P 0 "register_operand" "=d")) - (clobber (match_operand:P 1 "register_operand" "=d")) +(define_insn "*cmpstrdi" + [(clobber (match_operand:DI 0 "register_operand" "=d")) + (clobber (match_operand:DI 1 "register_operand" "=d")) (set (reg:CCU CC_REGNUM) - (compare:CCU (mem:BLK (match_operand:P 2 "register_operand" "0")) - (mem:BLK (match_operand:P 3 "register_operand" "1")))) + (compare:CCU (mem:BLK (match_operand:DI 2 "register_operand" "0")) + (mem:BLK (match_operand:DI 3 "register_operand" "1")))) (use (reg:SI 0))] "" "clst\t%0,%1\;jo\t.-4" @@ -3583,28 +3241,15 @@ ; (define_expand "movstr" - [(match_operand 0 "register_operand" "") - (match_operand 1 "memory_operand" "") - (match_operand 2 "memory_operand" "")] - "" -{ - if (TARGET_64BIT) - emit_insn (gen_movstrdi (operands[0], operands[1], operands[2])); - else - emit_insn (gen_movstrsi (operands[0], operands[1], operands[2])); - DONE; -}) - -(define_expand "movstr" [(set (reg:SI 0) (const_int 0)) (parallel [(clobber (match_dup 3)) (set (match_operand:BLK 1 "memory_operand" "") (match_operand:BLK 2 "memory_operand" "")) - (set (match_operand:P 0 "register_operand" "") - (unspec:P [(match_dup 1) - (match_dup 2) - (reg:SI 0)] UNSPEC_MVST)) + (set (match_operand:DI 0 "register_operand" "") + (unspec:DI [(match_dup 1) + (match_dup 2) + (reg:SI 0)] UNSPEC_MVST)) (clobber (reg:CC CC_REGNUM))])] "" { @@ -3627,13 +3272,13 @@ }) (define_insn "*movstr" - [(clobber (match_operand:P 2 "register_operand" "=d")) - (set (mem:BLK (match_operand:P 1 "register_operand" "0")) - (mem:BLK (match_operand:P 3 "register_operand" "2"))) - (set (match_operand:P 0 "register_operand" "=d") - (unspec:P [(mem:BLK (match_dup 1)) - (mem:BLK (match_dup 3)) - (reg:SI 0)] UNSPEC_MVST)) + [(clobber (match_operand:DI 2 "register_operand" "=d")) + (set (mem:BLK (match_operand:DI 1 "register_operand" "0")) + (mem:BLK (match_operand:DI 3 "register_operand" "2"))) + (set (match_operand:DI 0 "register_operand" "=d") + (unspec:DI [(mem:BLK (match_dup 1)) + (mem:BLK (match_dup 3)) + (reg:SI 0)] UNSPEC_MVST)) (clobber (reg:CC CC_REGNUM))] "" "mvst\t%1,%2\;jo\t.-4" @@ -3648,7 +3293,7 @@ (define_expand "cpymem" [(set (match_operand:BLK 0 "memory_operand" "") ; destination (match_operand:BLK 1 "memory_operand" "")) ; source - (use (match_operand:GPR 2 "general_operand" "")) ; size + (use (match_operand:DSI 2 "general_operand" "")) ; size (match_operand 3 "") ; align (match_operand 4 "") ; expected align (match_operand 5 "") ; expected size @@ -3680,11 +3325,11 @@ (match_operand:BLK 1 "memory_operand" "Q,Q,Q,Q")) (use (match_operand 2 "nonmemory_operand" "n,a,a,a")) (use (match_operand 3 "immediate_operand" "X,R,X,X")) - (clobber (match_scratch:P 4 "=X,X,X,&a"))] + (clobber (match_scratch:DI 4 "=X,X,X,&a"))] "(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)" "#" [(set_attr "type" "cs") - (set_attr "cpu_facility" "*,*,z10,cpu_zarch")]) + (set_attr "cpu_facility" "*,*,z10,*")]) (define_split [(set (match_operand:BLK 0 "memory_operand" "") @@ -3754,12 +3399,10 @@ (clobber (reg:CC CC_REGNUM))])] "" { - machine_mode sreg_mode = TARGET_ZARCH ? DImode : SImode; - machine_mode dreg_mode = TARGET_ZARCH ? TImode : DImode; - rtx reg0 = gen_reg_rtx (dreg_mode); - rtx reg1 = gen_reg_rtx (dreg_mode); - rtx addr0 = gen_lowpart (Pmode, gen_highpart (sreg_mode, reg0)); - rtx addr1 = gen_lowpart (Pmode, gen_highpart (sreg_mode, reg1)); + rtx reg0 = gen_reg_rtx (TImode); + rtx reg1 = gen_reg_rtx (TImode); + rtx addr0 = gen_lowpart (Pmode, gen_highpart (DImode, reg0)); + rtx addr1 = gen_lowpart (Pmode, gen_highpart (DImode, reg1)); rtx len0 = gen_lowpart (Pmode, reg0); rtx len1 = gen_lowpart (Pmode, reg1); @@ -3778,27 +3421,14 @@ }) (define_insn "*cpymem_long" - [(clobber (match_operand: 0 "register_operand" "=d")) - (clobber (match_operand: 1 "register_operand" "=d")) - (set (mem:BLK (subreg:P (match_operand: 2 "register_operand" "0") 0)) - (mem:BLK (subreg:P (match_operand: 3 "register_operand" "1") 0))) - (use (match_dup 2)) - (use (match_dup 3)) - (clobber (reg:CC CC_REGNUM))] - "TARGET_64BIT || !TARGET_ZARCH" - "mvcle\t%0,%1,0\;jo\t.-4" - [(set_attr "length" "8") - (set_attr "type" "vs")]) - -(define_insn "*cpymem_long_31z" [(clobber (match_operand:TI 0 "register_operand" "=d")) (clobber (match_operand:TI 1 "register_operand" "=d")) - (set (mem:BLK (subreg:SI (match_operand:TI 2 "register_operand" "0") 4)) - (mem:BLK (subreg:SI (match_operand:TI 3 "register_operand" "1") 4))) + (set (mem:BLK (subreg:DI (match_operand:TI 2 "register_operand" "0") 0)) + (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "1") 0))) (use (match_dup 2)) (use (match_dup 3)) (clobber (reg:CC CC_REGNUM))] - "!TARGET_64BIT && TARGET_ZARCH" + "" "mvcle\t%0,%1,0\;jo\t.-4" [(set_attr "length" "8") (set_attr "type" "vs")]) @@ -3806,7 +3436,7 @@ (define_expand "movmem" [(set (match_operand:BLK 0 "memory_operand") ; destination (match_operand:BLK 1 "memory_operand")) ; source - (use (match_operand:GPR 2 "general_operand")) ; size + (use (match_operand:DSI 2 "general_operand")) ; size (match_operand 3 "") ; align (match_operand 4 "") ; expected align (match_operand 5 "") ; expected size @@ -3872,7 +3502,7 @@ (define_expand "signbithf2" [(match_operand:SI 0 "register_operand") (match_operand:HF 1 "nonimmediate_operand")] - "TARGET_HARD_FLOAT && TARGET_Z10 && TARGET_64BIT" + "TARGET_HARD_FLOAT && TARGET_Z10" { if (TARGET_VX) { @@ -3894,12 +3524,12 @@ (match_operand:SIGNBIT_SINGLE 1 "nonimmediate_operand")] "" { - if (TARGET_VX && TARGET_64BIT) + if (TARGET_VX) { emit_insn (gen_rtx_SET (operands[0], simplify_gen_subreg (SImode, operands[1], mode, 0))); emit_insn (gen_rtx_SET (operands[0], gen_rtx_LSHIFTRT (SImode, operands[0], GEN_INT (31)))); } - else if (TARGET_Z10 && TARGET_64BIT) + else if (TARGET_Z10) emit_insn (gen_signbit2_z10 (operands[0], operands[1])); else emit_insn (gen_signbit_tdc2 (operands[0], force_reg (mode, operands[1]))); @@ -3914,14 +3544,14 @@ [(set (match_operand:SI 0 "register_operand" "=d") (unspec:SI [(match_operand:SIGNBIT_HALF_SINGLE 1 "nonimmediate_operand" "fRT")] UNSPEC_SIGNBIT))] - "TARGET_Z10 && TARGET_64BIT" + "TARGET_Z10" "#") (define_split [(set (match_operand:SI 0 "register_operand") (unspec:SI [(match_operand:SIGNBIT_HALF_SINGLE 1 "register_operand")] UNSPEC_SIGNBIT))] - "TARGET_Z10 && TARGET_64BIT && reload_completed" + "TARGET_Z10 && reload_completed" [(set (match_dup 0) (match_dup 1)) (set (match_dup 0) (lshiftrt:DI (match_dup 0) (const_int 63)))] { @@ -3933,7 +3563,7 @@ [(set (match_operand:SI 0 "register_operand") (unspec:SI [(match_operand:SIGNBIT_HALF_SINGLE 1 "memory_operand")] UNSPEC_SIGNBIT))] - "TARGET_Z10 && TARGET_64BIT && reload_completed" + "TARGET_Z10 && reload_completed" [(set (match_dup 0) (match_dup 1)) (set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 31)))] { @@ -3959,7 +3589,7 @@ (match_operand:SIGNBIT_DBL_TETRA 1 "nonimmediate_operand")] "" { - if (TARGET_Z10 && TARGET_64BIT) + if (TARGET_Z10) { rtx reg_di = gen_reg_rtx (DImode); if (mode == TFmode || mode == TDmode) @@ -4018,7 +3648,7 @@ (define_expand "setmem" [(set (match_operand:BLK 0 "memory_operand" "") ; destination (match_operand:QI 2 "general_operand" "")) ; value - (use (match_operand:GPR 1 "general_operand" "")) ; size + (use (match_operand:DSI 1 "general_operand" "")) ; size (match_operand 3 "") ; align (match_operand 4 "") ; expected align (match_operand 5 "") ; expected size @@ -4046,12 +3676,12 @@ (const_int 0)) (use (match_operand 1 "nonmemory_operand" "n,a,a,a")) (use (match_operand 2 "immediate_operand" "X,R,X,X")) - (clobber (match_scratch:P 3 "=X,X,X,&a")) + (clobber (match_scratch:DI 3 "=X,X,X,&a")) (clobber (reg:CC CC_REGNUM))] "(GET_MODE (operands[1]) == Pmode || GET_MODE (operands[1]) == VOIDmode)" "#" [(set_attr "type" "cs") - (set_attr "cpu_facility" "*,*,z10,cpu_zarch")]) + (set_attr "cpu_facility" "*,*,z10,*")]) (define_split [(set (match_operand:BLK 0 "memory_operand" "") @@ -4118,21 +3748,19 @@ ; Initialize a block of arbitrary length with (operands[2] % 256). -(define_expand "setmem_long_" +(define_expand "setmem_long_di" [(parallel [(clobber (match_dup 1)) (set (match_operand:BLK 0 "memory_operand" "") - (unspec:BLK [(match_operand:P 2 "setmem_operand" "") - (match_dup 4)] UNSPEC_REPLICATE_BYTE)) + (unspec:BLK [(match_operand:DI 2 "setmem_operand" "") + (match_dup 4)] UNSPEC_REPLICATE_BYTE)) (use (match_dup 3)) (clobber (reg:CC CC_REGNUM))])] "" { - machine_mode sreg_mode = TARGET_ZARCH ? DImode : SImode; - machine_mode dreg_mode = TARGET_ZARCH ? TImode : DImode; - rtx reg0 = gen_reg_rtx (dreg_mode); - rtx reg1 = gen_reg_rtx (dreg_mode); - rtx addr0 = gen_lowpart (Pmode, gen_highpart (sreg_mode, reg0)); + rtx reg0 = gen_reg_rtx (TImode); + rtx reg1 = gen_reg_rtx (TImode); + rtx addr0 = gen_lowpart (Pmode, gen_highpart (DImode, reg0)); rtx len0 = gen_lowpart (Pmode, reg0); emit_clobber (reg0); @@ -4147,57 +3775,28 @@ operands[4] = gen_lowpart (Pmode, operands[1]); }) -; Patterns for 31 bit + Esa and 64 bit + Zarch. - (define_insn "*setmem_long" - [(clobber (match_operand: 0 "register_operand" "=d")) - (set (mem:BLK (subreg:P (match_operand: 3 "register_operand" "0") 0)) - (unspec:BLK [(match_operand:P 2 "setmem_operand" "Y") - (subreg:P (match_dup 3) )] - UNSPEC_REPLICATE_BYTE)) - (use (match_operand: 1 "register_operand" "d")) - (clobber (reg:CC CC_REGNUM))] - "TARGET_64BIT || !TARGET_ZARCH" - "mvcle\t%0,%1,%Y2\;jo\t.-4" - [(set_attr "length" "8") - (set_attr "type" "vs")]) - -(define_insn "*setmem_long_and" - [(clobber (match_operand: 0 "register_operand" "=d")) - (set (mem:BLK (subreg:P (match_operand: 3 "register_operand" "0") 0)) - (unspec:BLK [(zero_extend:P (match_operand:QI 2 "setmem_operand" "Y")) - (subreg:P (match_dup 3) )] - UNSPEC_REPLICATE_BYTE)) - (use (match_operand: 1 "register_operand" "d")) - (clobber (reg:CC CC_REGNUM))] - "(TARGET_64BIT || !TARGET_ZARCH)" - "mvcle\t%0,%1,%Y2\;jo\t.-4" - [(set_attr "length" "8") - (set_attr "type" "vs")]) - -; Variants for 31 bit + Zarch, necessary because of the odd in-register offsets -; of the SImode subregs. - -(define_insn "*setmem_long_31z" [(clobber (match_operand:TI 0 "register_operand" "=d")) - (set (mem:BLK (subreg:SI (match_operand:TI 3 "register_operand" "0") 4)) - (unspec:BLK [(match_operand:SI 2 "setmem_operand" "Y") - (subreg:SI (match_dup 3) 12)] UNSPEC_REPLICATE_BYTE)) + (set (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "0") 0)) + (unspec:BLK [(match_operand:DI 2 "setmem_operand" "Y") + (subreg:DI (match_dup 3) )] + UNSPEC_REPLICATE_BYTE)) (use (match_operand:TI 1 "register_operand" "d")) (clobber (reg:CC CC_REGNUM))] - "!TARGET_64BIT && TARGET_ZARCH" + "" "mvcle\t%0,%1,%Y2\;jo\t.-4" [(set_attr "length" "8") (set_attr "type" "vs")]) -(define_insn "*setmem_long_and_31z" +(define_insn "*setmem_long_and" [(clobber (match_operand:TI 0 "register_operand" "=d")) - (set (mem:BLK (subreg:SI (match_operand:TI 3 "register_operand" "0") 4)) - (unspec:BLK [(zero_extend:SI (match_operand:QI 2 "setmem_operand" "Y")) - (subreg:SI (match_dup 3) 12)] UNSPEC_REPLICATE_BYTE)) + (set (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "0") 0)) + (unspec:BLK [(zero_extend:DI (match_operand:QI 2 "setmem_operand" "Y")) + (subreg:DI (match_dup 3) )] + UNSPEC_REPLICATE_BYTE)) (use (match_operand:TI 1 "register_operand" "d")) (clobber (reg:CC CC_REGNUM))] - "(!TARGET_64BIT && TARGET_ZARCH)" + "" "mvcle\t%0,%1,%Y2\;jo\t.-4" [(set_attr "length" "8") (set_attr "type" "vs")]) @@ -4241,11 +3840,11 @@ (match_operand:BLK 1 "memory_operand" "Q,Q,Q,Q"))) (use (match_operand 2 "nonmemory_operand" "n,a,a,a")) (use (match_operand 3 "immediate_operand" "X,R,X,X")) - (clobber (match_scratch:P 4 "=X,X,X,&a"))] + (clobber (match_scratch:DI 4 "=X,X,X,&a"))] "(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)" "#" [(set_attr "type" "cs") - (set_attr "cpu_facility" "*,*,z10,cpu_zarch")]) + (set_attr "cpu_facility" "*,*,z10,*")]) (define_split [(set (reg:CCU CC_REGNUM) @@ -4319,12 +3918,10 @@ (use (match_dup 3))])] "" { - machine_mode sreg_mode = TARGET_ZARCH ? DImode : SImode; - machine_mode dreg_mode = TARGET_ZARCH ? TImode : DImode; - rtx reg0 = gen_reg_rtx (dreg_mode); - rtx reg1 = gen_reg_rtx (dreg_mode); - rtx addr0 = gen_lowpart (Pmode, gen_highpart (sreg_mode, reg0)); - rtx addr1 = gen_lowpart (Pmode, gen_highpart (sreg_mode, reg1)); + rtx reg0 = gen_reg_rtx (TImode); + rtx reg1 = gen_reg_rtx (TImode); + rtx addr0 = gen_lowpart (Pmode, gen_highpart (DImode, reg0)); + rtx addr1 = gen_lowpart (Pmode, gen_highpart (DImode, reg1)); rtx len0 = gen_lowpart (Pmode, reg0); rtx len1 = gen_lowpart (Pmode, reg1); @@ -4343,31 +3940,17 @@ }) (define_insn "*cmpmem_long" - [(clobber (match_operand: 0 "register_operand" "=d")) - (clobber (match_operand: 1 "register_operand" "=d")) - (set (reg:CCU CC_REGNUM) - (compare:CCU (mem:BLK (subreg:P (match_operand: 2 "register_operand" "0") 0)) - (mem:BLK (subreg:P (match_operand: 3 "register_operand" "1") 0)))) - (use (match_dup 2)) - (use (match_dup 3))] - "TARGET_64BIT || !TARGET_ZARCH" - "clcle\t%0,%1,0\;jo\t.-4" - [(set_attr "length" "8") - (set_attr "type" "vs")]) - -(define_insn "*cmpmem_long_31z" [(clobber (match_operand:TI 0 "register_operand" "=d")) (clobber (match_operand:TI 1 "register_operand" "=d")) (set (reg:CCU CC_REGNUM) - (compare:CCU (mem:BLK (subreg:SI (match_operand:TI 2 "register_operand" "0") 4)) - (mem:BLK (subreg:SI (match_operand:TI 3 "register_operand" "1") 4)))) + (compare:CCU (mem:BLK (subreg:DI (match_operand:TI 2 "register_operand" "0") 0)) + (mem:BLK (subreg:DI (match_operand:TI 3 "register_operand" "1") 0)))) (use (match_dup 2)) (use (match_dup 3))] - "!TARGET_64BIT && TARGET_ZARCH" + "" "clcle\t%0,%1,0\;jo\t.-4" - [(set_attr "op_type" "NN") - (set_attr "type" "vs") - (set_attr "length" "8")]) + [(set_attr "length" "8") + (set_attr "type" "vs")]) ; Convert CCUmode condition code to integer. ; Result is zero if EQ, positive if LTU, negative if GTU. @@ -4410,7 +3993,7 @@ (sign_extend:DI (unspec:SI [(match_operand:CCU 1 "register_operand" "0")] UNSPEC_STRCMPCC_TO_INT))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "#" "&& reload_completed" [(set (match_dup 0) (ashift:DI (match_dup 0) (const_int 34))) @@ -4427,7 +4010,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d") (sign_extend:DI (unspec:SI [(match_dup 1)] UNSPEC_STRCMPCC_TO_INT)))] - "s390_match_ccmode (insn, CCSmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCSmode)" "#" "&& reload_completed" [(set (match_dup 0) (ashift:DI (match_dup 0) (const_int 34))) @@ -4463,24 +4046,11 @@ (unspec:DI [(match_operand:BLK 1 "s_operand" "S") (match_operand 2 "const_int_operand" "n")] UNSPEC_ICM)) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "icmh\t%0,%2,%S1" [(set_attr "op_type" "RSY") (set_attr "z10prop" "z10_super")]) -(define_insn "*sethighpartdi_31" - [(set (match_operand:DI 0 "register_operand" "=d,d") - (unspec:DI [(match_operand:BLK 1 "s_operand" "Q,S") - (match_operand 2 "const_int_operand" "n,n")] UNSPEC_ICM)) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "@ - icm\t%0,%2,%S1 - icmy\t%0,%2,%S1" - [(set_attr "op_type" "RS,RSY") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "z10prop" "z10_super_E1,z10_super_E1")]) - ; ; extv instruction patterns ; @@ -4513,9 +4083,9 @@ }) (define_insn "*extzv" - [(set (match_operand:GPR 0 "register_operand" "=d") - (zero_extract:GPR - (match_operand:GPR 1 "register_operand" "d") + [(set (match_operand:DSI 0 "register_operand" "=d") + (zero_extract:DSI + (match_operand:DSI 1 "register_operand" "d") (match_operand 2 "const_int_operand" "") ; size (match_operand 3 "const_int_operand" ""))) ; start ] @@ -4609,8 +4179,8 @@ (set_attr "z10prop" "z10_super_E1")]) (define_insn_and_split "*pre_z10_extzv" - [(set (match_operand:GPR 0 "register_operand" "=d") - (zero_extract:GPR (match_operand:QI 1 "s_operand" "S") + [(set (match_operand:DSI 0 "register_operand" "=d") + (zero_extract:DSI (match_operand:QI 1 "s_operand" "S") (match_operand 2 "nonzero_shift_count_operand" "") (const_int 0))) (clobber (reg:CC CC_REGNUM))] @@ -4618,9 +4188,9 @@ "#" "&& reload_completed" [(parallel - [(set (match_dup 0) (unspec:GPR [(match_dup 1) (match_dup 3)] UNSPEC_ICM)) + [(set (match_dup 0) (unspec:DSI [(match_dup 1) (match_dup 3)] UNSPEC_ICM)) (clobber (reg:CC CC_REGNUM))]) - (set (match_dup 0) (lshiftrt:GPR (match_dup 0) (match_dup 2)))] + (set (match_dup 0) (lshiftrt:DSI (match_dup 0) (match_dup 2)))] { int bitsize = INTVAL (operands[2]); int size = (bitsize - 1) / BITS_PER_UNIT + 1; /* round up */ @@ -4629,13 +4199,13 @@ operands[1] = adjust_address (operands[1], BLKmode, 0); set_mem_size (operands[1], size); - operands[2] = GEN_INT ( - bitsize); + operands[2] = GEN_INT ( - bitsize); operands[3] = GEN_INT (mask); }) (define_insn_and_split "*pre_z10_extv" - [(set (match_operand:GPR 0 "register_operand" "=d") - (sign_extract:GPR (match_operand:QI 1 "s_operand" "S") + [(set (match_operand:DSI 0 "register_operand" "=d") + (sign_extract:DSI (match_operand:QI 1 "s_operand" "S") (match_operand 2 "nonzero_shift_count_operand" "") (const_int 0))) (clobber (reg:CC CC_REGNUM))] @@ -4643,10 +4213,10 @@ "#" "&& reload_completed" [(parallel - [(set (match_dup 0) (unspec:GPR [(match_dup 1) (match_dup 3)] UNSPEC_ICM)) + [(set (match_dup 0) (unspec:DSI [(match_dup 1) (match_dup 3)] UNSPEC_ICM)) (clobber (reg:CC CC_REGNUM))]) (parallel - [(set (match_dup 0) (ashiftrt:GPR (match_dup 0) (match_dup 2))) + [(set (match_dup 0) (ashiftrt:DSI (match_dup 0) (match_dup 2))) (clobber (reg:CC CC_REGNUM))])] { int bitsize = INTVAL (operands[2]); @@ -4656,7 +4226,7 @@ operands[1] = adjust_address (operands[1], BLKmode, 0); set_mem_size (operands[1], size); - operands[2] = GEN_INT ( - bitsize); + operands[2] = GEN_INT ( - bitsize); operands[3] = GEN_INT (mask); }) @@ -4681,10 +4251,10 @@ ; the location operand isn't word mode. However, we do this in the ; back-end when generating atomic operations. See s390_two_part_insv. (define_insn "*insv" - [(set (zero_extract:GPR (match_operand:GPR 0 "nonimmediate_operand" "+d") + [(set (zero_extract:DSI (match_operand:DSI 0 "nonimmediate_operand" "+d") (match_operand 1 "const_int_operand" "I") ; size (match_operand 2 "const_int_operand" "I")) ; pos - (match_operand:GPR 3 "nonimmediate_operand" "d"))] + (match_operand:DSI 3 "nonimmediate_operand" "d"))] " && EXTRACT_ARGS_IN_RANGE (INTVAL (operands[1]), INTVAL (operands[2]), GET_MODE_BITSIZE (mode)) @@ -4696,11 +4266,11 @@ ; and op1 with a mask being 1 for the selected bits and 0 for the rest ; and op3=op0 with a mask being 0 for the selected bits and 1 for the rest (define_insn "*insv_noshift" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d,d") - (ior:GPR (and:GPR (match_operand:GPR 1 "nonimmediate_operand" "d,0") - (match_operand:GPR 2 "contiguous_bitmask_operand" "")) - (and:GPR (match_operand:GPR 3 "nonimmediate_operand" "0,d") - (match_operand:GPR 4 "const_int_operand" ""))))] + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d,d") + (ior:DSI (and:DSI (match_operand:DSI 1 "nonimmediate_operand" "d,0") + (match_operand:DSI 2 "contiguous_bitmask_operand" "")) + (and:DSI (match_operand:DSI 3 "nonimmediate_operand" "0,d") + (match_operand:DSI 4 "const_int_operand" ""))))] " && INTVAL (operands[2]) == ~INTVAL (operands[4])" "@ \t%0,%1,%2,%2,0 @@ -4750,11 +4320,11 @@ ; Implement appending Y on the left of S bits of X ; x = (y << s) | (x & ((1 << s) - 1)) (define_insn "*insv_appendbitsleft" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (ior:GPR (and:GPR (match_operand:GPR 1 "nonimmediate_operand" "0") - (match_operand:GPR 2 "immediate_operand" "")) - (ashift:GPR (match_operand:GPR 3 "nonimmediate_operand" "d") - (match_operand:GPR 4 "nonzero_shift_count_operand" ""))))] + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (ior:DSI (and:DSI (match_operand:DSI 1 "nonimmediate_operand" "0") + (match_operand:DSI 2 "immediate_operand" "")) + (ashift:DSI (match_operand:DSI 3 "nonimmediate_operand" "d") + (match_operand:DSI 4 "nonzero_shift_count_operand" ""))))] " && UINTVAL (operands[2]) == (HOST_WIDE_INT_1U << UINTVAL (operands[4])) - 1" "\t%0,%3,,64-%4-1,%4" @@ -4763,13 +4333,13 @@ ; a = ((i32)a & -16777216) | (((ui32)b) >> 8) (define_insn "*__ior_and_lshiftrt" - [(set (match_operand:GPR 0 "register_operand" "=d") - (ior:GPR (and:GPR - (match_operand:GPR 1 "register_operand" "0") - (match_operand:GPR 2 "const_int_operand" "")) - (lshiftrt:GPR - (match_operand:GPR 3 "register_operand" "d") - (match_operand:GPR 4 "nonzero_shift_count_operand" ""))))] + [(set (match_operand:DSI 0 "register_operand" "=d") + (ior:DSI (and:DSI + (match_operand:DSI 1 "register_operand" "0") + (match_operand:DSI 2 "const_int_operand" "")) + (lshiftrt:DSI + (match_operand:DSI 3 "register_operand" "d") + (match_operand:DSI 4 "nonzero_shift_count_operand" ""))))] " && UINTVAL (operands[2]) == (HOST_WIDE_INT_M1U << (GET_MODE_BITSIZE (mode) - UINTVAL (operands[4])))" @@ -4825,17 +4395,17 @@ ; -> z = y >> d; z = risbg; (define_split - [(set (match_operand:GPR 0 "nonimmediate_operand" "") - (ior:GPR (lshiftrt:GPR (match_operand:GPR 1 "nonimmediate_operand" "") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (ashift:GPR (match_operand:GPR 3 "nonimmediate_operand" "") - (match_operand:GPR 4 "nonzero_shift_count_operand" ""))))] + [(set (match_operand:DSI 0 "nonimmediate_operand" "") + (ior:DSI (lshiftrt:DSI (match_operand:DSI 1 "nonimmediate_operand" "") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (ashift:DSI (match_operand:DSI 3 "nonimmediate_operand" "") + (match_operand:DSI 4 "nonzero_shift_count_operand" ""))))] "TARGET_ZEC12 && UINTVAL (operands[2]) + UINTVAL (operands[4]) >= " [(set (match_dup 6) - (lshiftrt:GPR (match_dup 1) (match_dup 2))) + (lshiftrt:DSI (match_dup 1) (match_dup 2))) (set (match_dup 0) - (ior:GPR (and:GPR (match_dup 6) (match_dup 5)) - (ashift:GPR (match_dup 3) (match_dup 4))))] + (ior:DSI (and:DSI (match_dup 6) (match_dup 5)) + (ashift:DSI (match_dup 3) (match_dup 4))))] { operands[5] = GEN_INT ((HOST_WIDE_INT_1U << UINTVAL (operands[4])) - 1); if (reg_overlap_mentioned_p (operands[0], operands[3])) @@ -4850,19 +4420,19 @@ (define_split [(parallel - [(set (match_operand:GPR 0 "nonimmediate_operand" "") - (ior:GPR (lshiftrt:GPR (match_operand:GPR 1 "nonimmediate_operand" "") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (ashift:GPR (match_operand:GPR 3 "nonimmediate_operand" "") - (match_operand:GPR 4 "nonzero_shift_count_operand" "")))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "") + (ior:DSI (lshiftrt:DSI (match_operand:DSI 1 "nonimmediate_operand" "") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (ashift:DSI (match_operand:DSI 3 "nonimmediate_operand" "") + (match_operand:DSI 4 "nonzero_shift_count_operand" "")))) (clobber (reg:CC CC_REGNUM))])] "TARGET_Z10 && !TARGET_ZEC12 && UINTVAL (operands[2]) + UINTVAL (operands[4]) >= " [(set (match_dup 6) - (lshiftrt:GPR (match_dup 1) (match_dup 2))) + (lshiftrt:DSI (match_dup 1) (match_dup 2))) (parallel [(set (match_dup 0) - (ior:GPR (and:GPR (match_dup 6) (match_dup 5)) - (ashift:GPR (match_dup 3) (match_dup 4)))) + (ior:DSI (and:DSI (match_dup 6) (match_dup 5)) + (ashift:DSI (match_dup 3) (match_dup 4)))) (clobber (reg:CC CC_REGNUM))])] { operands[5] = GEN_INT ((HOST_WIDE_INT_1U << UINTVAL (operands[4])) - 1); @@ -4878,11 +4448,11 @@ ; rosbg, rxsbg (define_insn "*rsbg__noshift" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (IXOR:GPR - (and:GPR (match_operand:GPR 1 "nonimmediate_operand" "d") - (match_operand:GPR 2 "contiguous_bitmask_operand" "")) - (match_operand:GPR 3 "nonimmediate_operand" "0"))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (IXOR:DSI + (and:DSI (match_operand:DSI 1 "nonimmediate_operand" "d") + (match_operand:DSI 2 "contiguous_bitmask_operand" "")) + (match_operand:DSI 3 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10" "rsbg\t%0,%1,%2,%2,0" @@ -4905,14 +4475,14 @@ ; rosbg, rxsbg (define_insn "*rsbg__srl_bitmask" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (IXOR:GPR - (and:GPR - (lshiftrt:GPR - (match_operand:GPR 1 "nonimmediate_operand" "d") - (match_operand:GPR 3 "nonzero_shift_count_operand" "")) - (match_operand:GPR 2 "contiguous_bitmask_nowrap_operand" "")) - (match_operand:GPR 4 "nonimmediate_operand" "0"))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (IXOR:DSI + (and:DSI + (lshiftrt:DSI + (match_operand:DSI 1 "nonimmediate_operand" "d") + (match_operand:DSI 3 "nonzero_shift_count_operand" "")) + (match_operand:DSI 2 "contiguous_bitmask_nowrap_operand" "")) + (match_operand:DSI 4 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10 && s390_extzv_shift_ok (, 64 - INTVAL (operands[3]), @@ -4925,14 +4495,14 @@ ; rosbg, rxsbg (define_insn "*rsbg__sll_bitmask" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (IXOR:GPR - (and:GPR - (ashift:GPR - (match_operand:GPR 1 "nonimmediate_operand" "d") - (match_operand:GPR 3 "nonzero_shift_count_operand" "")) - (match_operand:GPR 2 "contiguous_bitmask_nowrap_operand" "")) - (match_operand:GPR 4 "nonimmediate_operand" "0"))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (IXOR:DSI + (and:DSI + (ashift:DSI + (match_operand:DSI 1 "nonimmediate_operand" "d") + (match_operand:DSI 3 "nonzero_shift_count_operand" "")) + (match_operand:DSI 2 "contiguous_bitmask_nowrap_operand" "")) + (match_operand:DSI 4 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10 && s390_extzv_shift_ok (, INTVAL (operands[3]), @@ -4945,12 +4515,12 @@ ;; a = a ^ (b << const_int) ; rosbg, rxsbg (define_insn "*rsbg__sll" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (IXOR:GPR - (ashift:GPR - (match_operand:GPR 1 "nonimmediate_operand" "d") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (match_operand:GPR 3 "nonimmediate_operand" "0"))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (IXOR:DSI + (ashift:DSI + (match_operand:DSI 1 "nonimmediate_operand" "d") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (match_operand:DSI 3 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10" { @@ -4964,12 +4534,12 @@ ;; a = a ^ (b >> const_int) ; rosbg, rxsbg (define_insn "*rsbg__srl" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d") - (IXOR:GPR - (lshiftrt:GPR - (match_operand:GPR 1 "nonimmediate_operand" "d") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (match_operand:GPR 3 "nonimmediate_operand" "0"))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d") + (IXOR:DSI + (lshiftrt:DSI + (match_operand:DSI 1 "nonimmediate_operand" "d") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (match_operand:DSI 3 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10" { @@ -5055,11 +4625,11 @@ "rnsbg\t%0,%4,%2,%2+%1-1,%3" [(set_attr "op_type" "RIE")]) -(define_insn "*insv_mem_reg" - [(set (zero_extract:W (match_operand:QI 0 "memory_operand" "+Q,S") - (match_operand 1 "const_int_operand" "n,n") - (const_int 0)) - (match_operand:W 2 "register_operand" "d,d"))] +(define_insn "*insvdi_mem_reg" + [(set (zero_extract:DI (match_operand:QI 0 "memory_operand" "+Q,S") + (match_operand 1 "const_int_operand" "n,n") + (const_int 0)) + (match_operand:DI 2 "register_operand" "d,d"))] "EXTRACT_ARGS_IN_RANGE (INTVAL (operands[1]), 0, 64) && INTVAL (operands[1]) > 0 && INTVAL (operands[1]) <= GET_MODE_BITSIZE (SImode) @@ -5081,8 +4651,7 @@ (const_int 0)) (lshiftrt:DI (match_operand:DI 2 "register_operand" "d") (const_int 32)))] - "TARGET_ZARCH - && EXTRACT_ARGS_IN_RANGE (INTVAL (operands[1]), 0, 64) + "EXTRACT_ARGS_IN_RANGE (INTVAL (operands[1]), 0, 64) && INTVAL (operands[1]) > 0 && INTVAL (operands[1]) <= GET_MODE_BITSIZE (SImode) && INTVAL (operands[1]) % BITS_PER_UNIT == 0" @@ -5100,8 +4669,7 @@ (const_int 16) (match_operand 1 "const_int_operand" "n")) (match_operand:DI 2 "const_int_operand" "n"))] - "TARGET_ZARCH - && EXTRACT_ARGS_IN_RANGE (16, INTVAL (operands[1]), 64) + "EXTRACT_ARGS_IN_RANGE (16, INTVAL (operands[1]), 64) && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) < BITS_PER_WORD && INTVAL (operands[1]) % 16 == 0" @@ -5149,7 +4717,7 @@ (unspec:DI [(match_operand:DI 1 "register_operand" "d") (match_operand:DI 2 "register_operand" "d")] UNSPEC_BDEPG))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "bdepg\t%0,%1,%2" [(set_attr "op_type" "RRF")]) @@ -5162,7 +4730,7 @@ (unspec:DI [(match_operand:DI 1 "register_operand" "d") (match_operand:DI 2 "register_operand" "d")] UNSPEC_BEXTG))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "bextg\t%0,%1,%2" [(set_attr "op_type" "RRF")]) @@ -5171,25 +4739,10 @@ ; extendsidi2 instruction pattern(s). ; -(define_expand "extendsidi2" - [(set (match_operand:DI 0 "register_operand" "") - (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "")))] - "" -{ - if (!TARGET_ZARCH) - { - emit_clobber (operands[0]); - emit_move_insn (gen_highpart (SImode, operands[0]), operands[1]); - emit_move_insn (gen_lowpart (SImode, operands[0]), const0_rtx); - emit_insn (gen_ashrdi3 (operands[0], operands[0], GEN_INT (32))); - DONE; - } -}) - -(define_insn "*extendsidi2" +(define_insn "extendsidi2" [(set (match_operand:DI 0 "register_operand" "=d,d,d") (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,T,b")))] - "TARGET_ZARCH" + "" "@ lgfr\t%0,%1 lgf\t%0,%1 @@ -5209,14 +4762,7 @@ (sign_extend:DSI (match_operand:HQI 1 "nonimmediate_operand" "")))] "" { - if (mode == DImode && !TARGET_ZARCH) - { - rtx tmp = gen_reg_rtx (SImode); - emit_insn (gen_extendsi2 (tmp, operands[1])); - emit_insn (gen_extendsidi2 (operands[0], tmp)); - DONE; - } - else if (!TARGET_EXTIMM) + if (!TARGET_EXTIMM) { rtx bitcount = GEN_INT ( - ); @@ -5234,7 +4780,7 @@ (define_insn "*extendhidi2_extimm" [(set (match_operand:DI 0 "register_operand" "=d,d,d") (sign_extend:DI (match_operand:HI 1 "general_operand" "d,T,b")))] - "TARGET_ZARCH && TARGET_EXTIMM" + "TARGET_EXTIMM" "@ lghr\t%0,%1 lgh\t%0,%1 @@ -5248,7 +4794,7 @@ (define_insn "*extendhidi2" [(set (match_operand:DI 0 "register_operand" "=d") (sign_extend:DI (match_operand:HI 1 "memory_operand" "T")))] - "TARGET_ZARCH" + "" "lgh\t%0,%1" [(set_attr "op_type" "RXY") (set_attr "z10prop" "z10_super_E1")]) @@ -5289,8 +4835,8 @@ ; lbr, lgbr, lb, lgb (define_insn "*extendqi2_extimm" - [(set (match_operand:GPR 0 "register_operand" "=d,d") - (sign_extend:GPR (match_operand:QI 1 "nonimmediate_operand" "d,T")))] + [(set (match_operand:DSI 0 "register_operand" "=d,d") + (sign_extend:DSI (match_operand:QI 1 "nonimmediate_operand" "d,T")))] "TARGET_EXTIMM" "@ lbr\t%0,%1 @@ -5300,54 +4846,40 @@ ; lb, lgb (define_insn "*extendqi2" - [(set (match_operand:GPR 0 "register_operand" "=d") - (sign_extend:GPR (match_operand:QI 1 "memory_operand" "T")))] + [(set (match_operand:DSI 0 "register_operand" "=d") + (sign_extend:DSI (match_operand:QI 1 "memory_operand" "T")))] "!TARGET_EXTIMM && TARGET_LONG_DISPLACEMENT" "lb\t%0,%1" [(set_attr "op_type" "RXY") (set_attr "z10prop" "z10_super_E1")]) (define_insn_and_split "*extendqi2_short_displ" - [(set (match_operand:GPR 0 "register_operand" "=d") - (sign_extend:GPR (match_operand:QI 1 "s_operand" "Q"))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (sign_extend:DSI (match_operand:QI 1 "s_operand" "Q"))) (clobber (reg:CC CC_REGNUM))] "!TARGET_EXTIMM && !TARGET_LONG_DISPLACEMENT" "#" "&& reload_completed" [(parallel - [(set (match_dup 0) (unspec:GPR [(match_dup 1) (const_int 8)] UNSPEC_ICM)) + [(set (match_dup 0) (unspec:DSI [(match_dup 1) (const_int 8)] UNSPEC_ICM)) (clobber (reg:CC CC_REGNUM))]) (parallel - [(set (match_dup 0) (ashiftrt:GPR (match_dup 0) (match_dup 2))) + [(set (match_dup 0) (ashiftrt:DSI (match_dup 0) (match_dup 2))) (clobber (reg:CC CC_REGNUM))])] { operands[1] = adjust_address (operands[1], BLKmode, 0); set_mem_size (operands[1], GET_MODE_SIZE (QImode)); - operands[2] = GEN_INT ( - BITS_PER_UNIT); + operands[2] = GEN_INT ( - BITS_PER_UNIT); }) ; ; zero_extendsidi2 instruction pattern(s). ; -(define_expand "zero_extendsidi2" - [(set (match_operand:DI 0 "register_operand" "") - (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "")))] - "" -{ - if (!TARGET_ZARCH) - { - emit_clobber (operands[0]); - emit_move_insn (gen_lowpart (SImode, operands[0]), operands[1]); - emit_move_insn (gen_highpart (SImode, operands[0]), const0_rtx); - DONE; - } -}) - -(define_insn "*zero_extendsidi2" +(define_insn "zero_extendsidi2" [(set (match_operand:DI 0 "register_operand" "=d,d,d,d") (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,T,b,v")))] - "TARGET_ZARCH" + "" "@ llgfr\t%0,%1 llgf\t%0,%1 @@ -5367,7 +4899,7 @@ [(set (match_operand:DI 0 "register_operand" "=d") (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "T") 0) (const_int 2147483647)))] - "TARGET_ZARCH" + "" "llgt\t%0,%1" [(set_attr "op_type" "RXE") (set_attr "z10prop" "z10_super_E1")]) @@ -5377,7 +4909,7 @@ (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "T") 0) (const_int 2147483647))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "#" "&& reload_completed" [(set (match_dup 0) @@ -5389,7 +4921,7 @@ [(set (match_operand:SI 0 "register_operand" "=d,d") (and:SI (match_operand:SI 1 "nonimmediate_operand" "d,T") (const_int 2147483647)))] - "TARGET_ZARCH" + "" "@ llgtr\t%0,%1 llgt\t%0,%1" @@ -5400,7 +4932,7 @@ [(set (match_operand:DI 0 "register_operand" "=d,d") (and:DI (match_operand:DI 1 "nonimmediate_operand" "d,o") (const_int 2147483647)))] - "TARGET_ZARCH" + "" "@ llgtr\t%0,%1 llgt\t%0,%N1" @@ -5412,7 +4944,7 @@ (and:DSI (match_operand:DSI 1 "nonimmediate_operand" "") (const_int 2147483647))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && reload_completed" + "reload_completed" [(set (match_dup 0) (and:DSI (match_dup 1) (const_int 2147483647)))] @@ -5427,14 +4959,7 @@ (zero_extend:DI (match_operand:HQI 1 "nonimmediate_operand" "")))] "" { - if (!TARGET_ZARCH) - { - rtx tmp = gen_reg_rtx (SImode); - emit_insn (gen_zero_extendsi2 (tmp, operands[1])); - emit_insn (gen_zero_extendsidi2 (operands[0], tmp)); - DONE; - } - else if (!TARGET_EXTIMM) + if (!TARGET_EXTIMM) { rtx bitcount = GEN_INT (64 - ); operands[1] = gen_lowpart (DImode, operands[1]); @@ -5460,8 +4985,8 @@ ; llhrl, llghrl (define_insn "*zero_extendhi2_z10" - [(set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (zero_extend:GPR (match_operand:HI 1 "nonimmediate_operand" "d,T,b,v")))] + [(set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (zero_extend:DSI (match_operand:HI 1 "nonimmediate_operand" "d,T,b,v")))] "TARGET_Z10" "@ llhr\t%0,%1 @@ -5475,9 +5000,9 @@ (set_attr "relative_long" "*,*,yes,*")]) ; llhr, llcr, llghr, llgcr, llh, llc, llgh, llgc -(define_insn "*zero_extend2_extimm" - [(set (match_operand:GPR 0 "register_operand" "=d,d,d") - (zero_extend:GPR (match_operand:HQI 1 "nonimmediate_operand" "d,T,v")))] +(define_insn "*zero_extend2_extimm" + [(set (match_operand:DSI 0 "register_operand" "=d,d,d") + (zero_extend:DSI (match_operand:HQI 1 "nonimmediate_operand" "d,T,v")))] "TARGET_EXTIMM" "@ llr\t%0,%1 @@ -5488,37 +5013,14 @@ (set_attr "z10prop" "z10_super_E1,z10_fwd_A3,*")]) ; llgh, llgc -(define_insn "*zero_extend2" - [(set (match_operand:GPR 0 "register_operand" "=d") - (zero_extend:GPR (match_operand:HQI 1 "memory_operand" "T")))] - "TARGET_ZARCH && !TARGET_EXTIMM" +(define_insn "*zero_extend2" + [(set (match_operand:DSI 0 "register_operand" "=d") + (zero_extend:DSI (match_operand:HQI 1 "memory_operand" "T")))] + "!TARGET_EXTIMM" "llg\t%0,%1" [(set_attr "op_type" "RXY") (set_attr "z10prop" "z10_fwd_A3")]) -(define_insn_and_split "*zero_extendhisi2_31" - [(set (match_operand:SI 0 "register_operand" "=&d") - (zero_extend:SI (match_operand:HI 1 "s_operand" "S"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "#" - "&& reload_completed" - [(set (match_dup 0) (const_int 0)) - (parallel - [(set (strict_low_part (match_dup 2)) (match_dup 1)) - (clobber (reg:CC CC_REGNUM))])] - "operands[2] = gen_lowpart (HImode, operands[0]);") - -(define_insn_and_split "*zero_extendqisi2_31" - [(set (match_operand:SI 0 "register_operand" "=&d") - (zero_extend:SI (match_operand:QI 1 "memory_operand" "T")))] - "!TARGET_ZARCH" - "#" - "&& reload_completed" - [(set (match_dup 0) (const_int 0)) - (set (strict_low_part (match_dup 2)) (match_dup 1))] - "operands[2] = gen_lowpart (QImode, operands[0]);") - ; ; zero_extendqihi2 instruction pattern(s). ; @@ -5526,7 +5028,7 @@ (define_expand "zero_extendqihi2" [(set (match_operand:HI 0 "register_operand" "") (zero_extend:HI (match_operand:QI 1 "register_operand" "")))] - "TARGET_ZARCH && !TARGET_EXTIMM" + "!TARGET_EXTIMM" { operands[1] = gen_lowpart (HImode, operands[1]); emit_insn (gen_andhi3 (operands[0], operands[1], GEN_INT (0xff))); @@ -5536,21 +5038,11 @@ (define_insn "*zero_extendqihi2_64" [(set (match_operand:HI 0 "register_operand" "=d") (zero_extend:HI (match_operand:QI 1 "memory_operand" "T")))] - "TARGET_ZARCH && !TARGET_EXTIMM" + "!TARGET_EXTIMM" "llgc\t%0,%1" [(set_attr "op_type" "RXY") (set_attr "z10prop" "z10_fwd_A3")]) -(define_insn_and_split "*zero_extendqihi2_31" - [(set (match_operand:HI 0 "register_operand" "=&d") - (zero_extend:HI (match_operand:QI 1 "memory_operand" "T")))] - "!TARGET_ZARCH" - "#" - "&& reload_completed" - [(set (match_dup 0) (const_int 0)) - (set (strict_low_part (match_dup 2)) (match_dup 1))] - "operands[2] = gen_lowpart (QImode, operands[0]);") - ; ; fixuns_trunc(dd|td|sf|df|tf)(si|di)2 expander ; @@ -5558,11 +5050,11 @@ ; This is the only entry point for fixuns_trunc. It multiplexes the ; expansion to either the *_emu expanders below for pre z196 machines ; or emits the default pattern otherwise. -(define_expand "fixuns_trunc2" +(define_expand "fixuns_trunc2" [(parallel - [(set (match_operand:GPR 0 "register_operand" "") - (unsigned_fix:GPR (match_operand:FP 1 "register_operand" ""))) - (unspec:GPR [(match_dup 2)] UNSPEC_ROUND) + [(set (match_operand:DSI 0 "register_operand" "") + (unsigned_fix:DSI (match_operand:FP 1 "register_operand" ""))) + (unspec:DSI [(match_dup 2)] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "TARGET_HARD_FLOAT" { @@ -5570,9 +5062,9 @@ { /* We don't provide emulation for TD|DD->SI. */ if (GET_MODE_CLASS (mode) == MODE_DECIMAL_FLOAT - && mode == SImode) + && mode == SImode) FAIL; - emit_insn (gen_fixuns_trunc2_emu (operands[0], + emit_insn (gen_fixuns_trunc2_emu (operands[0], operands[1])); DONE; } @@ -5587,11 +5079,11 @@ ; Emulate the unsigned conversion with the signed version for pre z196 ; machines. -(define_expand "fixuns_trunc2_emu" +(define_expand "fixuns_trunc2_emu" [(parallel - [(set (match_operand:GPR 0 "register_operand" "") - (unsigned_fix:GPR (match_operand:BFP 1 "register_operand" ""))) - (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) + [(set (match_operand:DSI 0 "register_operand" "") + (unsigned_fix:DSI (match_operand:BFP 1 "register_operand" ""))) + (unspec:DSI [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "!TARGET_Z196 && TARGET_HARD_FLOAT" { @@ -5601,20 +5093,20 @@ REAL_VALUE_TYPE cmp, sub; operands[1] = force_reg (mode, operands[1]); - real_2expN (&cmp, - 1, mode); - real_2expN (&sub, , mode); + real_2expN (&cmp, - 1, mode); + real_2expN (&sub, , mode); emit_cmp_and_jump_insns (operands[1], const_double_from_real_value (cmp, mode), LT, NULL_RTX, VOIDmode, 0, label1); emit_insn (gen_sub3 (temp, operands[1], const_double_from_real_value (sub, mode))); - emit_insn (gen_fix_trunc2_bfp (operands[0], temp, + emit_insn (gen_fix_trunc2_bfp (operands[0], temp, GEN_INT (BFP_RND_TOWARD_MINF))); emit_jump (label2); emit_label (label1); - emit_insn (gen_fix_trunc2_bfp (operands[0], + emit_insn (gen_fix_trunc2_bfp (operands[0], operands[1], GEN_INT (BFP_RND_TOWARD_0))); emit_label (label2); @@ -5734,23 +5226,23 @@ ; (dd|td|sf|df|tf)->unsigned (di|si) ; clfebr, clfdbr, clfxbr, clgebr, clgdbr, clgxbr ; clfdtr, clfxtr, clgdtr, clgxtr -(define_insn "*fixuns_trunc2_z196" - [(set (match_operand:GPR 0 "register_operand" "=d") - (unsigned_fix:GPR (match_operand:FP 1 "register_operand" "f"))) - (unspec:GPR [(match_operand:GPR 2 "immediate_operand" "K")] UNSPEC_ROUND) +(define_insn "*fixuns_trunc2_z196" + [(set (match_operand:DSI 0 "register_operand" "=d") + (unsigned_fix:DSI (match_operand:FP 1 "register_operand" "f"))) + (unspec:DSI [(match_operand:DSI 2 "immediate_operand" "K")] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))] "TARGET_Z196 && TARGET_HARD_FLOAT - && (!TARGET_VX || mode != DImode || mode != DFmode)" - "clr\t%0,%h2,%1,0" + && (!TARGET_VX || mode != DImode || mode != DFmode)" + "clr\t%0,%h2,%1,0" [(set_attr "op_type" "RRF") (set_attr "type" "ftoi")]) -(define_expand "fix_trunc2" - [(set (match_operand:GPR 0 "register_operand" "") - (fix:GPR (match_operand:DSF 1 "register_operand" "")))] +(define_expand "fix_trunc2" + [(set (match_operand:DSI 0 "register_operand" "") + (fix:DSI (match_operand:DSF 1 "register_operand" "")))] "TARGET_HARD_FLOAT" { - emit_insn (gen_fix_trunc2_bfp (operands[0], operands[1], + emit_insn (gen_fix_trunc2_bfp (operands[0], operands[1], GEN_INT (BFP_RND_TOWARD_0))); DONE; }) @@ -5770,22 +5262,22 @@ (set_attr "type" "ftoi")]) ; cgxbr, cgdbr, cgebr, cfxbr, cfdbr, cfebr -(define_insn "*fix_trunc2_bfp" - [(set (match_operand:GPR 0 "register_operand" "=d") - (fix:GPR (match_operand:BFP 1 "register_operand" "f"))) - (unspec:GPR [(match_operand:GPR 2 "immediate_operand" "K")] UNSPEC_ROUND) +(define_insn "*fix_trunc2_bfp" + [(set (match_operand:DSI 0 "register_operand" "=d") + (fix:DSI (match_operand:BFP 1 "register_operand" "f"))) + (unspec:DSI [(match_operand:DSI 2 "immediate_operand" "K")] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))] "TARGET_HARD_FLOAT - && (!TARGET_VX || mode != DImode || mode != DFmode)" - "cbr\t%0,%h2,%1" + && (!TARGET_VX || mode != DImode || mode != DFmode)" + "cbr\t%0,%h2,%1" [(set_attr "op_type" "RRE") (set_attr "type" "ftoi")]) -(define_expand "fix_trunc2_bfp" +(define_expand "fix_trunc2_bfp" [(parallel - [(set (match_operand:GPR 0 "register_operand" "=d") - (fix:GPR (match_operand:BFP 1 "register_operand" "f"))) - (unspec:GPR [(match_operand:GPR 2 "immediate_operand" "K")] UNSPEC_ROUND) + [(set (match_operand:DSI 0 "register_operand" "=d") + (fix:DSI (match_operand:BFP 1 "register_operand" "f"))) + (unspec:DSI [(match_operand:DSI 2 "immediate_operand" "K")] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "TARGET_HARD_FLOAT") ; @@ -5795,7 +5287,7 @@ (define_expand "fix_truncdi2" [(set (match_operand:DI 0 "register_operand" "") (fix:DI (match_operand:DFP 1 "nonimmediate_operand" "")))] - "TARGET_ZARCH && TARGET_HARD_DFP" + "TARGET_HARD_DFP" { operands[1] = force_reg (mode, operands[1]); emit_insn (gen_fix_truncdi2_dfp (operands[0], operands[1], @@ -5809,7 +5301,7 @@ (fix:DI (match_operand:DFP 1 "register_operand" "f"))) (unspec:DI [(match_operand:DI 2 "immediate_operand" "K")] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && TARGET_HARD_DFP" + "TARGET_HARD_DFP" "cgtr\t%0,%h2,%1" [(set_attr "op_type" "RRF") (set_attr "type" "ftoidfp")]) @@ -5820,9 +5312,9 @@ ; (define_expand "fix_trunctf2_fpr" - [(parallel [(set (match_operand:GPR 0 "register_operand" "") - (fix:GPR (match_operand:TF 1 "register_operand" ""))) - (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) + [(parallel [(set (match_operand:DSI 0 "register_operand" "") + (fix:DSI (match_operand:TF 1 "register_operand" ""))) + (unspec:DSI [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "TARGET_HARD_FLOAT && !TARGET_VXE" "") @@ -5836,7 +5328,7 @@ (define_insn "floatdi2" [(set (match_operand:FP 0 "register_operand" "=f,v") (float:FP (match_operand:DI 1 "register_operand" "d,v")))] - "TARGET_ZARCH && TARGET_HARD_FLOAT" + "TARGET_HARD_FLOAT" "@ cgr\t%0,%1 wcdgb\t%v0,%v1,0,0" @@ -5883,18 +5375,18 @@ ; cxlgbr, cdlgbr, celgbr, cxlgtr, cdlgtr ; cxlfbr, cdlfbr, celfbr, cxlftr, cdlftr -(define_insn "*floatuns2" +(define_insn "*floatuns2" [(set (match_operand:FP 0 "register_operand" "=f") - (unsigned_float:FP (match_operand:GPR 1 "register_operand" "d")))] + (unsigned_float:FP (match_operand:DSI 1 "register_operand" "d")))] "TARGET_Z196 && TARGET_HARD_FLOAT - && (!TARGET_VX || mode != DFmode || mode != DImode)" - "clr\t%0,0,%1,0" + && (!TARGET_VX || mode != DFmode || mode != DImode)" + "clr\t%0,0,%1,0" [(set_attr "op_type" "RRE") (set_attr "type" "itof")]) -(define_expand "floatuns2" +(define_expand "floatuns2" [(set (match_operand:FP 0 "register_operand" "") - (unsigned_float:FP (match_operand:GPR 1 "register_operand" "")))] + (unsigned_float:FP (match_operand:DSI 1 "register_operand" "")))] "TARGET_Z196 && TARGET_HARD_FLOAT") ; @@ -6257,7 +5749,7 @@ (plus:TI (match_operand:TI 1 "nonimmediate_operand" "") (match_operand:TI 2 "general_operand" "") ) ) (clobber (reg:CC CC_REGNUM))])] - "TARGET_ZARCH" + "" { /* For z13 we have vaq which doesn't set CC. */ if (TARGET_VX) @@ -6275,7 +5767,7 @@ (plus:TI (match_operand:TI 1 "nonimmediate_operand" "%0") (match_operand:TI 2 "general_operand" "do") ) ) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "#" "&& reload_completed" [(parallel @@ -6315,7 +5807,7 @@ (plus:DI (sign_extend:DI (match_operand:SI 2 "general_operand" "d,T")) (match_operand:DI 1 "register_operand" "0,0"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "@ agfr\t%0,%2 agf\t%0,%2" @@ -6329,7 +5821,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d,d") (plus:DI (zero_extend:DI (match_dup 2)) (match_dup 1)))] - "s390_match_ccmode (insn, CCLmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCLmode)" "@ algfr\t%0,%2 algf\t%0,%2" @@ -6342,7 +5834,7 @@ (match_operand:DI 1 "register_operand" "0,0")) (const_int 0))) (clobber (match_scratch:DI 0 "=d,d"))] - "s390_match_ccmode (insn, CCLmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCLmode)" "@ algfr\t%0,%2 algf\t%0,%2" @@ -6354,38 +5846,13 @@ (plus:DI (zero_extend:DI (match_operand:SI 2 "general_operand" "d,T")) (match_operand:DI 1 "register_operand" "0,0"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "@ algfr\t%0,%2 algf\t%0,%2" [(set_attr "op_type" "RRE,RXY") (set_attr "z10prop" "z10_super_E1,z10_super_E1")]) -(define_insn_and_split "*adddi3_31z" - [(set (match_operand:DI 0 "nonimmediate_operand" "=&d") - (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0") - (match_operand:DI 2 "general_operand" "do") ) ) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "#" - "&& reload_completed" - [(parallel - [(set (reg:CCL1 CC_REGNUM) - (compare:CCL1 (plus:SI (match_dup 7) (match_dup 8)) - (match_dup 7))) - (set (match_dup 6) (plus:SI (match_dup 7) (match_dup 8)))]) - (parallel - [(set (match_dup 3) (plus:SI - (plus:SI (ltu:SI (reg:CCL1 CC_REGNUM) (const_int 0)) - (match_dup 4)) (match_dup 5))) - (clobber (reg:CC CC_REGNUM))])] - "operands[3] = operand_subword (operands[0], 0, 0, DImode); - operands[4] = operand_subword (operands[1], 0, 0, DImode); - operands[5] = operand_subword (operands[2], 0, 0, DImode); - operands[6] = operand_subword (operands[0], 1, 0, DImode); - operands[7] = operand_subword (operands[1], 1, 0, DImode); - operands[8] = operand_subword (operands[2], 1, 0, DImode);") - ; ; addsi3 instruction pattern(s). ; @@ -6418,9 +5885,9 @@ ; ark, agrk, ar, ahi, ahik, aghik, alfi, slfi, a, ay, agr, aghi, algfi, slgfi, ag, asi, agsi (define_insn "*add3" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d,d,d,d, d, d,d,d,S") - (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,d, 0, 0,0,0,0") - (match_operand:GPR 2 "general_operand" " d,d,K,K,Op,On,R,T,C") ) ) + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d,d,d,d, d, d,d,d,S") + (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,d, 0, 0,0,0,0") + (match_operand:DSI 2 "general_operand" " d,d,K,K,Op,On,R,T,C") ) ) (clobber (reg:CC CC_REGNUM))] "" "@ @@ -6441,11 +5908,11 @@ ; alr, alfi, slfi, al, aly, alrk, alhsik, algr, algfi, slgfi, alg, alsi, algsi, algrk, alghsik (define_insn "add3_carry1_cc" [(set (reg:CCL1 CC_REGNUM) - (compare:CCL1 (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") - (match_operand:GPR 2 "general_operand" " d,d,Op,On,K,R,T,C")) + (compare:CCL1 (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") + (match_operand:DSI 2 "general_operand" " d,d,Op,On,K,R,T,C")) (match_dup 1))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,d") - (plus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,d") + (plus:DSI (match_dup 1) (match_dup 2)))] "" "@ alr\t%0,%2 @@ -6464,10 +5931,10 @@ ; alr, al, aly, algr, alg, alrk, algrk (define_insn "*add3_carry1_cconly" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (match_dup 1))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCL1mode)" "@ alr\t%0,%2 @@ -6481,11 +5948,11 @@ ; alr, alfi, slfi, al, aly, algr, algfi, slgfi, alg, alsi, algsi, alrk, algrk, alhsik, alghsik (define_insn "*add3_carry2_cc" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") - (match_operand:GPR 2 "general_operand" " d,d,Op,On,K,R,T,C")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") + (match_operand:DSI 2 "general_operand" " d,d,Op,On,K,R,T,C")) (match_dup 2))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,S") - (plus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,S") + (plus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCL1mode)" "@ alr\t%0,%2 @@ -6504,10 +5971,10 @@ ; alr, al, aly, algr, alg, alrk, algrk (define_insn "*add3_carry2_cconly" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (match_dup 2))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCL1mode)" "@ alr\t%0,%2 @@ -6521,11 +5988,11 @@ ; alr, alfi, slfi, al, aly, algr, algfi, slgfi, alg, alsi, algsi, alrk, algrk, alhsik, alghsik (define_insn "*add3_cc" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") - (match_operand:GPR 2 "general_operand" " d,d,Op,On,K,R,T,C")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d, 0, 0,d,0,0,0") + (match_operand:DSI 2 "general_operand" " d,d,Op,On,K,R,T,C")) (const_int 0))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,S") - (plus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "nonimmediate_operand" "=d,d, d, d,d,d,d,S") + (plus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCLmode)" "@ alr\t%0,%2 @@ -6544,10 +6011,10 @@ ; alr, al, aly, algr, alg, alrk, algrk (define_insn "*add3_cconly" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCLmode)" "@ alr\t%0,%2 @@ -6561,9 +6028,9 @@ ; alr, al, aly, algr, alg, alrk, algrk (define_insn "*add3_cconly2" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,0") - (neg:GPR (match_operand:GPR 2 "general_operand" "d,d,R,T")))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (compare (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,0") + (neg:DSI (match_operand:DSI 2 "general_operand" "d,d,R,T")))) + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode(insn, CCLmode)" "@ alr\t%0,%2 @@ -6577,16 +6044,15 @@ ; ahi, afi, aghi, agfi, asi, agsi (define_insn "*add3_imm_cc" [(set (reg CC_REGNUM) - (compare (plus:GPR (match_operand:GPR 1 "nonimmediate_operand" " 0, d,0, 0") - (match_operand:GPR 2 "const_int_operand" " K, K,Os,C")) + (compare (plus:DSI (match_operand:DSI 1 "nonimmediate_operand" " 0, d,0, 0") + (match_operand:DSI 2 "const_int_operand" " K, K,Os,C")) (const_int 0))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d, d,d, S") - (plus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "nonimmediate_operand" "=d, d,d, S") + (plus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCAmode) && (CONST_OK_FOR_CONSTRAINT_P (INTVAL (operands[2]), 'K', \"K\") || (CONST_OK_FOR_CONSTRAINT_P (INTVAL (operands[2]), 'O', \"Os\") - /* Avoid INT32_MIN on 32 bit. */ - && (!TARGET_ZARCH || INTVAL (operands[2]) != -0x7fffffff - 1)))" + && INTVAL (operands[2]) != -0x7fffffff - 1))" "@ ahi\t%0,%h2 ahik\t%0,%1,%h2 @@ -6617,12 +6083,12 @@ [(parallel [(set (reg:CCO CC_REGNUM) (compare:CCO (plus: - (sign_extend: (match_operand:GPR 1 "nonimmediate_operand")) + (sign_extend: (match_operand:DSI 1 "nonimmediate_operand")) (match_dup 4)) - (sign_extend: (plus:GPR (match_dup 1) - (match_operand:GPR 2 "general_operand"))))) - (set (match_operand:GPR 0 "nonimmediate_operand") - (plus:GPR (match_dup 1) (match_dup 2)))]) + (sign_extend: (plus:DSI (match_dup 1) + (match_operand:DSI 2 "general_operand"))))) + (set (match_operand:DSI 0 "nonimmediate_operand") + (plus:DSI (match_dup 1) (match_dup 2)))]) (set (pc) (if_then_else (ne (reg:CCO CC_REGNUM) (const_int 0)) (label_ref (match_operand 3)) @@ -6631,24 +6097,24 @@ { if (CONSTANT_P (operands[2]) && !addv_const_operand (operands[2], GET_MODE (operands[2]))) - operands[2] = force_reg (mode, operands[2]); + operands[2] = force_reg (mode, operands[2]); if (GET_MODE (operands[2]) != VOIDmode) operands[4] = gen_rtx_SIGN_EXTEND (mode, operands[2]); else /* This is what CSE does when propagating a constant into the pattern. */ - operands[4] = simplify_unary_operation (SIGN_EXTEND, mode, operands[2], mode); + operands[4] = simplify_unary_operation (SIGN_EXTEND, mode, operands[2], mode); }) ; ark, agrk, ar, ahi, ahik, aghik, a, ay, agr, aghi, ag, asi, agsi (define_insn "*addv3_ccoverflow" [(set (reg CC_REGNUM) (compare (plus: - (sign_extend: (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0,d,0,0,0")) - (sign_extend: (match_operand:GPR 2 "general_operand" " d,d,K,K,R,T,C"))) - (sign_extend: (plus:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d,d,d,d,d,d,S") - (plus:GPR (match_dup 1) (match_dup 2)))] + (sign_extend: (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0,d,0,0,0")) + (sign_extend: (match_operand:DSI 2 "general_operand" " d,d,K,K,R,T,C"))) + (sign_extend: (plus:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "nonimmediate_operand" "=d,d,d,d,d,d,S") + (plus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCOmode)" "@ ar\t%0,%2 @@ -6667,11 +6133,11 @@ (define_insn "*addv3_ccoverflow_const" [(set (reg CC_REGNUM) (compare (plus: - (sign_extend: (match_operand:GPR 1 "nonimmediate_operand" "%0,d,0")) + (sign_extend: (match_operand:DSI 1 "nonimmediate_operand" "%0,d,0")) (match_operand: 2 "addv_const_operand" "K,K,C")) - (sign_extend: (plus:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "nonimmediate_operand" "=d,d,S") - (plus:GPR (match_dup 1) (match_dup 2)))] + (sign_extend: (plus:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "nonimmediate_operand" "=d,d,S") + (plus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCOmode)" "@ ahi\t%0,%h2 @@ -6747,7 +6213,7 @@ [(set (match_operand:DI 0 "register_operand" "") (plus:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "nonmemory_operand" "")))] - "TARGET_64BIT" + "" { if (GET_CODE (operands[2]) == CONST_INT) { @@ -6764,32 +6230,6 @@ } }) -; For 31 bit we have to prevent the generated pattern from matching -; normal ADDs since la only does a 31 bit add. This is supposed to -; match "force_la_31". -(define_expand "addptrsi3" - [(parallel - [(set (match_operand:SI 0 "register_operand" "") - (plus:SI (match_operand:SI 1 "register_operand" "") - (match_operand:SI 2 "nonmemory_operand" ""))) - (use (const_int 0))])] - "!TARGET_64BIT" -{ - if (GET_CODE (operands[2]) == CONST_INT) - { - HOST_WIDE_INT c = INTVAL (operands[2]); - - if (!CONST_OK_FOR_CONSTRAINT_P (c, 'K', "K") - && !CONST_OK_FOR_CONSTRAINT_P (c, 'O', "Os")) - { - operands[2] = force_const_mem (SImode, operands[2]); - operands[2] = force_reg (SImode, operands[2]); - } - else if (!DISP_IN_RANGE (INTVAL (operands[2]))) - operands[2] = force_reg (SImode, operands[2]); - } -}) - ;; ;;- Subtract instructions. ;; @@ -6804,7 +6244,7 @@ (minus:TI (match_operand:TI 1 "register_operand" "") (match_operand:TI 2 "general_operand" "") ) ) (clobber (reg:CC CC_REGNUM))])] - "TARGET_ZARCH" + "" { /* For z13 we have vsq which doesn't set CC. */ if (TARGET_VX) @@ -6822,7 +6262,7 @@ (minus:TI (match_operand:TI 1 "register_operand" "0") (match_operand:TI 2 "general_operand" "do") ) ) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "#" "&& reload_completed" [(parallel @@ -6861,7 +6301,7 @@ (minus:DI (match_operand:DI 1 "register_operand" "0,0") (sign_extend:DI (match_operand:SI 2 "general_operand" "d,T")))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "@ sgfr\t%0,%2 sgf\t%0,%2" @@ -6876,7 +6316,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d,d") (minus:DI (match_dup 1) (zero_extend:DI (match_dup 2))))] - "s390_match_ccmode (insn, CCLmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCLmode)" "@ slgfr\t%0,%2 slgf\t%0,%2" @@ -6889,7 +6329,7 @@ (zero_extend:DI (match_operand:SI 2 "general_operand" "d,T"))) (const_int 0))) (clobber (match_scratch:DI 0 "=d,d"))] - "s390_match_ccmode (insn, CCLmode) && TARGET_ZARCH" + "s390_match_ccmode (insn, CCLmode)" "@ slgfr\t%0,%2 slgf\t%0,%2" @@ -6901,37 +6341,13 @@ (minus:DI (match_operand:DI 1 "register_operand" "0,0") (zero_extend:DI (match_operand:SI 2 "general_operand" "d,T")))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "@ slgfr\t%0,%2 slgf\t%0,%2" [(set_attr "op_type" "RRE,RXY") (set_attr "z10prop" "z10_super_c_E1,z10_super_E1")]) -(define_insn_and_split "*subdi3_31z" - [(set (match_operand:DI 0 "register_operand" "=&d") - (minus:DI (match_operand:DI 1 "register_operand" "0") - (match_operand:DI 2 "general_operand" "do") ) ) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "#" - "&& reload_completed" - [(parallel - [(set (reg:CCL2 CC_REGNUM) - (compare:CCL2 (minus:SI (match_dup 7) (match_dup 8)) - (match_dup 7))) - (set (match_dup 6) (minus:SI (match_dup 7) (match_dup 8)))]) - (parallel - [(set (match_dup 3) (minus:SI (minus:SI (match_dup 4) (match_dup 5)) - (gtu:SI (reg:CCL2 CC_REGNUM) (const_int 0)))) - (clobber (reg:CC CC_REGNUM))])] - "operands[3] = operand_subword (operands[0], 0, 0, DImode); - operands[4] = operand_subword (operands[1], 0, 0, DImode); - operands[5] = operand_subword (operands[2], 0, 0, DImode); - operands[6] = operand_subword (operands[0], 1, 0, DImode); - operands[7] = operand_subword (operands[1], 1, 0, DImode); - operands[8] = operand_subword (operands[2], 1, 0, DImode);") - ; ; subsi3 instruction pattern(s). ; @@ -6964,9 +6380,9 @@ ; sr, s, sy, sgr, sg, srk, sgrk (define_insn "*sub3" - [(set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (minus:GPR (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T") ) ) + [(set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (minus:DSI (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T") ) ) (clobber (reg:CC CC_REGNUM))] "" "@ @@ -6981,11 +6397,11 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "sub3_borrow_cc" [(set (reg:CCL2 CC_REGNUM) - (compare:CCL2 (minus:GPR (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare:CCL2 (minus:DSI (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (match_dup 1))) - (set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (minus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (minus:DSI (match_dup 1) (match_dup 2)))] "" "@ slr\t%0,%2 @@ -6999,10 +6415,10 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "*sub3_borrow_cconly" [(set (reg CC_REGNUM) - (compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (minus:DSI (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (match_dup 1))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCL2mode)" "@ slr\t%0,%2 @@ -7016,11 +6432,11 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "*sub3_cc" [(set (reg CC_REGNUM) - (compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (minus:DSI (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (minus:GPR (match_dup 1) (match_dup 2)))] + (set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (minus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCLmode)" "@ slr\t%0,%2 @@ -7034,10 +6450,10 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "*sub3_cc2" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T"))) - (set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (minus:GPR (match_dup 1) (match_dup 2)))] + (compare (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T"))) + (set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (minus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCL3mode)" "@ slr\t%0,%2 @@ -7051,10 +6467,10 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "*sub3_cconly" [(set (reg CC_REGNUM) - (compare (minus:GPR (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T")) + (compare (minus:DSI (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T")) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCLmode)" "@ slr\t%0,%2 @@ -7069,9 +6485,9 @@ ; slr, sl, sly, slgr, slg, slrk, slgrk (define_insn "*sub3_cconly2" [(set (reg CC_REGNUM) - (compare (match_operand:GPR 1 "register_operand" "0,d,0,0") - (match_operand:GPR 2 "general_operand" "d,d,R,T"))) - (clobber (match_scratch:GPR 0 "=d,d,d,d"))] + (compare (match_operand:DSI 1 "register_operand" "0,d,0,0") + (match_operand:DSI 2 "general_operand" "d,d,R,T"))) + (clobber (match_scratch:DSI 0 "=d,d,d,d"))] "s390_match_ccmode (insn, CCL3mode)" "@ slr\t%0,%2 @@ -7096,11 +6512,11 @@ [(parallel [(set (reg:CCO CC_REGNUM) (compare:CCO (minus: - (sign_extend: (match_operand:GPR 1 "nonimmediate_operand")) - (sign_extend: (match_operand:GPR 2 "nonimmediate_operand"))) - (sign_extend: (minus:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "nonimmediate_operand") - (minus:GPR (match_dup 1) (match_dup 2)))]) + (sign_extend: (match_operand:DSI 1 "nonimmediate_operand")) + (sign_extend: (match_operand:DSI 2 "nonimmediate_operand"))) + (sign_extend: (minus:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "nonimmediate_operand") + (minus:DSI (match_dup 1) (match_dup 2)))]) (set (pc) (if_then_else (ne (reg:CCO CC_REGNUM) (const_int 0)) (label_ref (match_operand 3)) @@ -7111,11 +6527,11 @@ (define_insn "*subv3_ccoverflow" [(set (reg CC_REGNUM) (compare (minus: - (sign_extend: (match_operand:GPR 1 "nonimmediate_operand" "0,d,0,0")) - (sign_extend: (match_operand:GPR 2 "nonimmediate_operand" "d,d,R,T"))) - (sign_extend: (minus:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "register_operand" "=d,d,d,d") - (minus:GPR (match_dup 1) (match_dup 2)))] + (sign_extend: (match_operand:DSI 1 "nonimmediate_operand" "0,d,0,0")) + (sign_extend: (match_operand:DSI 2 "nonimmediate_operand" "d,d,R,T"))) + (sign_extend: (minus:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "register_operand" "=d,d,d,d") + (minus:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCOmode)" "@ sr\t%0,%2 @@ -7193,11 +6609,11 @@ ; (define_expand "uaddc5" - [(match_operand:GPR 0 "register_operand") - (match_operand:GPR 1 "nonimmediate_operand") - (match_operand:GPR 2 "nonimmediate_operand") - (match_operand:GPR 3 "nonimmediate_operand") - (match_operand:GPR 4 "general_operand")] + [(match_operand:DSI 0 "register_operand") + (match_operand:DSI 1 "nonimmediate_operand") + (match_operand:DSI 2 "nonimmediate_operand") + (match_operand:DSI 3 "nonimmediate_operand") + (match_operand:DSI 4 "general_operand")] "TARGET_Z196" { if (operands[4] == const0_rtx) @@ -7222,12 +6638,12 @@ (define_insn "add3_alc_carry1_cc" [(set (reg:CCL1 CC_REGNUM) (compare:CCL1 - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T")) + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T")) (match_dup 1))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (plus:GPR (plus:GPR (match_dup 3) (match_dup 1)) (match_dup 2)))] + (set (match_operand:DSI 0 "register_operand" "=d,d") + (plus:DSI (plus:DSI (match_dup 3) (match_dup 1)) (match_dup 2)))] "" "@ alcr\t%0,%2 @@ -7239,11 +6655,11 @@ (define_insn "*add3_alc_carry1_cconly" [(set (reg CC_REGNUM) (compare - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T")) + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T")) (match_dup 1))) - (clobber (match_scratch:GPR 0 "=d,d"))] + (clobber (match_scratch:DSI 0 "=d,d"))] "s390_match_ccmode (insn, CCL1mode)" "@ alcr\t%0,%2 @@ -7257,12 +6673,12 @@ (define_insn "*add3_alc_carry2_cc" [(set (reg CC_REGNUM) (compare - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T")) + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T")) (match_dup 2))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (plus:GPR (plus:GPR (match_dup 3) (match_dup 1)) (match_dup 2)))] + (set (match_operand:DSI 0 "register_operand" "=d,d") + (plus:DSI (plus:DSI (match_dup 3) (match_dup 1)) (match_dup 2)))] "s390_match_ccmode (insn, CCL1mode)" "@ alcr\t%0,%2 @@ -7273,11 +6689,11 @@ (define_insn "*add3_alc_carry2_cconly" [(set (reg CC_REGNUM) (compare - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T")) + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T")) (match_dup 2))) - (clobber (match_scratch:GPR 0 "=d,d"))] + (clobber (match_scratch:DSI 0 "=d,d"))] "s390_match_ccmode (insn, CCL1mode)" "@ alcr\t%0,%2 @@ -7288,12 +6704,12 @@ (define_insn "*add3_alc_cc" [(set (reg CC_REGNUM) (compare - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T")) + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (plus:GPR (plus:GPR (match_dup 3) (match_dup 1)) (match_dup 2)))] + (set (match_operand:DSI 0 "register_operand" "=d,d") + (plus:DSI (plus:DSI (match_dup 3) (match_dup 1)) (match_dup 2)))] "s390_match_ccmode (insn, CCLmode)" "@ alcr\t%0,%2 @@ -7302,10 +6718,10 @@ ; alcr, alc, alcgr, alcg (define_insn "*add3_alc" - [(set (match_operand:GPR 0 "register_operand" "=d,d") - (plus:GPR (plus:GPR (match_operand:GPR 3 "s390_alc_comparison" "") - (match_operand:GPR 1 "nonimmediate_operand" "%0,0")) - (match_operand:GPR 2 "general_operand" "d,T"))) + [(set (match_operand:DSI 0 "register_operand" "=d,d") + (plus:DSI (plus:DSI (match_operand:DSI 3 "s390_alc_comparison" "") + (match_operand:DSI 1 "nonimmediate_operand" "%0,0")) + (match_operand:DSI 2 "general_operand" "d,T"))) (clobber (reg:CC CC_REGNUM))] "" "@ @@ -7314,11 +6730,11 @@ [(set_attr "op_type" "RRE,RXY")]) (define_expand "usubc5" - [(match_operand:GPR 0 "register_operand") - (match_operand:GPR 1 "nonimmediate_operand") - (match_operand:GPR 2 "nonimmediate_operand") - (match_operand:GPR 3 "nonimmediate_operand") - (match_operand:GPR 4 "general_operand")] + [(match_operand:DSI 0 "register_operand") + (match_operand:DSI 1 "nonimmediate_operand") + (match_operand:DSI 2 "nonimmediate_operand") + (match_operand:DSI 3 "nonimmediate_operand") + (match_operand:DSI 4 "general_operand")] "TARGET_Z196" { if (operands[4] == const0_rtx) @@ -7342,12 +6758,12 @@ (define_insn "*sub3_slb_cc" [(set (reg CC_REGNUM) (compare - (minus:GPR (minus:GPR (match_operand:GPR 1 "nonimmediate_operand" "0,0") - (match_operand:GPR 2 "general_operand" "d,T")) - (match_operand:GPR 3 "s390_slb_comparison" "")) + (minus:DSI (minus:DSI (match_operand:DSI 1 "nonimmediate_operand" "0,0") + (match_operand:DSI 2 "general_operand" "d,T")) + (match_operand:DSI 3 "s390_slb_comparison" "")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (minus:GPR (minus:GPR (match_dup 1) (match_dup 2)) (match_dup 3)))] + (set (match_operand:DSI 0 "register_operand" "=d,d") + (minus:DSI (minus:DSI (match_dup 1) (match_dup 2)) (match_dup 3)))] "s390_match_ccmode (insn, CCLmode)" "@ slbr\t%0,%2 @@ -7357,10 +6773,10 @@ ; slbr, slb, slbgr, slbg (define_insn "*sub3_slb" - [(set (match_operand:GPR 0 "register_operand" "=d,d") - (minus:GPR (minus:GPR (match_operand:GPR 1 "nonimmediate_operand" "0,0") - (match_operand:GPR 2 "general_operand" "d,T")) - (match_operand:GPR 3 "s390_slb_comparison" ""))) + [(set (match_operand:DSI 0 "register_operand" "=d,d") + (minus:DSI (minus:DSI (match_operand:DSI 1 "nonimmediate_operand" "0,0") + (match_operand:DSI 2 "general_operand" "d,T")) + (match_operand:DSI 3 "s390_slb_comparison" ""))) (clobber (reg:CC CC_REGNUM))] "" "@ @@ -7373,12 +6789,12 @@ (define_insn "sub3_slb_borrow1_cc" [(set (reg:CCL2 CC_REGNUM) (compare:CCL2 - (minus:GPR (minus:GPR (match_operand:GPR 1 "nonimmediate_operand" "0,0") - (match_operand:GPR 2 "general_operand" "d,T")) - (match_operand:GPR 3 "s390_slb_comparison" "")) + (minus:DSI (minus:DSI (match_operand:DSI 1 "nonimmediate_operand" "0,0") + (match_operand:DSI 2 "general_operand" "d,T")) + (match_operand:DSI 3 "s390_slb_comparison" "")) (match_dup 1))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (minus:GPR (minus:GPR (match_dup 1) (match_dup 2)) (match_dup 3)))] + (set (match_operand:DSI 0 "register_operand" "=d,d") + (minus:DSI (minus:DSI (match_dup 1) (match_dup 2)) (match_dup 3)))] "" "@ slbr\t%0,%2 @@ -7387,10 +6803,10 @@ (set_attr "z10prop" "z10_c,*")]) (define_expand "addcc" - [(match_operand:GPR 0 "register_operand" "") + [(match_operand:DSI 0 "register_operand" "") (match_operand 1 "comparison_operator" "") - (match_operand:GPR 2 "register_operand" "") - (match_operand:GPR 3 "const_int_operand" "")] + (match_operand:DSI 2 "register_operand" "") + (match_operand:DSI 3 "const_int_operand" "")] "" "if (!s390_expand_addcc (GET_CODE (operands[1]), XEXP (operands[1], 0), XEXP (operands[1], 1), @@ -7402,33 +6818,33 @@ ; (define_insn_and_split "*scond" - [(set (match_operand:GPR 0 "register_operand" "=&d") - (match_operand:GPR 1 "s390_alc_comparison" "")) + [(set (match_operand:DSI 0 "register_operand" "=&d") + (match_operand:DSI 1 "s390_alc_comparison" "")) (clobber (reg:CC CC_REGNUM))] "" "#" "&& reload_completed" [(set (match_dup 0) (const_int 0)) (parallel - [(set (match_dup 0) (plus:GPR (plus:GPR (match_dup 1) (match_dup 0)) + [(set (match_dup 0) (plus:DSI (plus:DSI (match_dup 1) (match_dup 0)) (match_dup 0))) (clobber (reg:CC CC_REGNUM))])] "") (define_insn_and_split "*scond_neg" - [(set (match_operand:GPR 0 "register_operand" "=&d") - (match_operand:GPR 1 "s390_slb_comparison" "")) + [(set (match_operand:DSI 0 "register_operand" "=&d") + (match_operand:DSI 1 "s390_slb_comparison" "")) (clobber (reg:CC CC_REGNUM))] "" "#" "&& reload_completed" [(set (match_dup 0) (const_int 0)) (parallel - [(set (match_dup 0) (minus:GPR (minus:GPR (match_dup 0) (match_dup 0)) + [(set (match_dup 0) (minus:DSI (minus:DSI (match_dup 0) (match_dup 0)) (match_dup 1))) (clobber (reg:CC CC_REGNUM))]) (parallel - [(set (match_dup 0) (neg:GPR (match_dup 0))) + [(set (match_dup 0) (neg:DSI (match_dup 0))) (clobber (reg:CC CC_REGNUM))])] "") @@ -7436,8 +6852,8 @@ (define_expand "cstore4" [(set (match_operand:SI 0 "register_operand" "") (match_operator:SI 1 "s390_scond_operator" - [(match_operand:GPR 2 "register_operand" "") - (match_operand:GPR 3 "general_operand" "")]))] + [(match_operand:DSI 2 "register_operand" "") + (match_operand:DSI 3 "general_operand" "")]))] "" "if (!s390_expand_addcc (GET_CODE (operands[1]), operands[2], operands[3], operands[0], const0_rtx, const1_rtx)) FAIL; DONE;") @@ -7486,8 +6902,8 @@ ; Such patterns get directly emitted by noce_emit_store_flag. (define_insn_and_split "*cstorecc_z13" - [(set (match_operand:GPR 0 "register_operand" "=&d") - (match_operator:GPR 1 "s390_comparison" + [(set (match_operand:DSI 0 "register_operand" "=&d") + (match_operator:DSI 1 "s390_comparison" [(match_operand 2 "cc_reg_operand" "c") (match_operand 3 "const_int_operand" "")]))] "TARGET_Z13" @@ -7495,7 +6911,7 @@ "reload_completed" [(set (match_dup 0) (const_int 0)) (set (match_dup 0) - (if_then_else:GPR + (if_then_else:DSI (match_op_dup 1 [(match_dup 2) (match_dup 3)]) (const_int 1) (match_dup 0)))]) @@ -7505,10 +6921,10 @@ ;; (define_expand "movcc" - [(set (match_operand:GPR 0 "nonimmediate_operand" "") - (if_then_else:GPR (match_operand 1 "comparison_operator" "") - (match_operand:GPR 2 "loc_operand" "") - (match_operand:GPR 3 "loc_operand" "")))] + [(set (match_operand:DSI 0 "nonimmediate_operand" "") + (if_then_else:DSI (match_operand 1 "comparison_operator" "") + (match_operand:DSI 2 "loc_operand" "") + (match_operand:DSI 3 "loc_operand" "")))] "TARGET_Z196" { if (!TARGET_Z13 && CONSTANT_P (operands[2])) @@ -7566,13 +6982,13 @@ ; locr, loc, stoc, locgr, locg, stocg, lochi, locghi, selr, selgr (define_insn "*movcc" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d,d,d,d,d,d,d,S,S") - (if_then_else:GPR + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d,d,d,d,d,d,d,S,S") + (if_then_else:DSI (match_operator 1 "s390_comparison" [(match_operand 2 "cc_reg_operand" " c,c,c,c,c,c,c,c,c") (match_operand 5 "const_int_operand" "")]) - (match_operand:GPR 3 "loc_operand" " d,0,d,S,0,K,0,d,0") - (match_operand:GPR 4 "loc_operand" " 0,d,d,0,S,0,K,0,d")))] + (match_operand:DSI 3 "loc_operand" " d,0,d,S,0,K,0,d,0") + (match_operand:DSI 4 "loc_operand" " 0,d,d,0,S,0,K,0,d")))] "TARGET_Z196" "@ locr%C1\t%0,%3 @@ -7601,13 +7017,13 @@ (mult:DI (match_operand:DI 1 "nonimmediate_operand") (match_operand:DI 2 "general_operand"))) (clobber (reg:CC CC_REGNUM))])] - "TARGET_ZARCH") + "") (define_insn "*muldi3_sign" [(set (match_operand:DI 0 "register_operand" "=d,d") (mult:DI (sign_extend:DI (match_operand:SI 2 "general_operand" "d,T")) (match_operand:DI 1 "register_operand" "0,0")))] - "TARGET_ZARCH" + "" "@ msgfr\t%0,%2 msgf\t%0,%2" @@ -7619,7 +7035,7 @@ (mult:DI (match_operand:DI 1 "nonimmediate_operand" "%0,d,0,0,0") (match_operand:DI 2 "general_operand" "d,d,K,T,Os"))) (clobber (match_scratch:CC 3 "=X,c,X,X,X"))] - "TARGET_ZARCH" + "" "@ msgr\t%0,%2 msgrkc\t%0,%1,%2 @@ -7709,31 +7125,16 @@ ; mulsidi3 instruction pattern(s). ; -(define_insn "mulsidi3" - [(set (match_operand:DI 0 "register_operand" "=d,d,d") - (mult:DI (sign_extend:DI - (match_operand:SI 1 "register_operand" "%0,0,0")) - (sign_extend:DI - (match_operand:SI 2 "nonimmediate_operand" "d,R,T"))))] - "!TARGET_ZARCH" - "@ - mr\t%0,%2 - m\t%0,%2 - mfy\t%0,%2" - [(set_attr "op_type" "RR,RX,RXY") - (set_attr "type" "imulsi") - (set_attr "cpu_facility" "*,*,z10")]) - ; Jump to label OP3 if OP1 * OP2 results in a signed overflow (define_expand "mulv4" [(parallel [(set (reg:CCO CC_REGNUM) (compare:CCO (mult: - (sign_extend: (match_operand:GPR 1 "register_operand")) - (sign_extend: (match_operand:GPR 2 "nonimmediate_operand"))) - (sign_extend: (mult:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "register_operand") - (mult:GPR (match_dup 1) (match_dup 2)))]) + (sign_extend: (match_operand:DSI 1 "register_operand")) + (sign_extend: (match_operand:DSI 2 "nonimmediate_operand"))) + (sign_extend: (mult:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "register_operand") + (mult:DSI (match_dup 1) (match_dup 2)))]) (set (pc) (if_then_else (ne (reg:CCO CC_REGNUM) (const_int 0)) (label_ref (match_operand 3)) @@ -7744,11 +7145,11 @@ (define_insn "*mulv3_ccoverflow" [(set (reg CC_REGNUM) (compare (mult: - (sign_extend: (match_operand:GPR 1 "register_operand" "%d,0")) - (sign_extend: (match_operand:GPR 2 "nonimmediate_operand" " d,T"))) - (sign_extend: (mult:GPR (match_dup 1) (match_dup 2))))) - (set (match_operand:GPR 0 "register_operand" "=d,d") - (mult:GPR (match_dup 1) (match_dup 2)))] + (sign_extend: (match_operand:DSI 1 "register_operand" "%d,0")) + (sign_extend: (match_operand:DSI 2 "nonimmediate_operand" " d,T"))) + (sign_extend: (mult:DSI (match_dup 1) (match_dup 2))))) + (set (match_operand:DSI 0 "register_operand" "=d,d") + (mult:DSI (match_dup 1) (match_dup 2)))] "s390_match_ccmode (insn, CCOmode) && TARGET_Z14" "@ msrkc\t%0,%1,%2 @@ -7761,18 +7162,18 @@ ; ; mlr, ml, mlgr, mlg -(define_insn "umul3" - [(set (match_operand:DW 0 "register_operand" "=d,d") - (mult:DW (zero_extend:DW - (match_operand: 1 "register_operand" "%0,0")) - (zero_extend:DW - (match_operand: 2 "nonimmediate_operand" " d,T"))))] +(define_insn "umulditi3" + [(set (match_operand:TI 0 "register_operand" "=d,d") + (mult:TI (zero_extend:TI + (match_operand:DI 1 "register_operand" "%0,0")) + (zero_extend:TI + (match_operand:DI 2 "nonimmediate_operand" " d,T"))))] "" "@ - mlr\t%0,%2 - ml\t%0,%2" + mlgr\t%0,%2 + mlg\t%0,%2" [(set_attr "op_type" "RRE,RXY") - (set_attr "type" "imul")]) + (set_attr "type" "imuldi")]) ; ; mul(tf|df|sf|td|dd)3 instruction pattern(s). @@ -7844,7 +7245,7 @@ (set (match_operand:DI 3 "general_operand" "") (mod:DI (match_dup 1) (match_dup 2)))]) (clobber (match_dup 4))] - "TARGET_ZARCH" + "" { rtx div_equal, mod_equal; rtx_insn *insn; @@ -7873,7 +7274,7 @@ (match_operand:DI 2 "general_operand" "d,T"))) (const_int 64)) (zero_extend:TI (div:DI (match_dup 1) (match_dup 2)))))] - "TARGET_ZARCH" + "" "@ dsgr\t%0,%2 dsg\t%0,%2" @@ -7889,193 +7290,73 @@ (sign_extend:DI (match_operand:SI 2 "nonimmediate_operand" "d,T")))) (const_int 64)) - (zero_extend:TI - (div:DI (match_dup 1) (sign_extend:DI (match_dup 2))))))] - "TARGET_ZARCH" - "@ - dsgfr\t%0,%2 - dsgf\t%0,%2" - [(set_attr "op_type" "RRE,RXY") - (set_attr "type" "idiv")]) - -; -; udivmoddi4 instruction pattern(s). -; - -(define_expand "udivmoddi4" - [(parallel [(set (match_operand:DI 0 "general_operand" "") - (udiv:DI (match_operand:DI 1 "general_operand" "") - (match_operand:DI 2 "nonimmediate_operand" ""))) - (set (match_operand:DI 3 "general_operand" "") - (umod:DI (match_dup 1) (match_dup 2)))]) - (clobber (match_dup 4))] - "TARGET_ZARCH" -{ - rtx div_equal, mod_equal, equal; - rtx_insn *insn; - - div_equal = gen_rtx_UDIV (DImode, operands[1], operands[2]); - mod_equal = gen_rtx_UMOD (DImode, operands[1], operands[2]); - equal = gen_rtx_IOR (TImode, - gen_rtx_ASHIFT (TImode, - gen_rtx_ZERO_EXTEND (TImode, mod_equal), - GEN_INT (64)), - gen_rtx_ZERO_EXTEND (TImode, div_equal)); - - operands[4] = gen_reg_rtx(TImode); - emit_clobber (operands[4]); - emit_move_insn (gen_lowpart (DImode, operands[4]), operands[1]); - emit_move_insn (gen_highpart (DImode, operands[4]), const0_rtx); - - insn = emit_insn (gen_udivmodtidi3 (operands[4], operands[4], operands[2])); - set_unique_reg_note (insn, REG_EQUAL, equal); - - insn = emit_move_insn (operands[0], gen_lowpart (DImode, operands[4])); - set_unique_reg_note (insn, REG_EQUAL, div_equal); - - insn = emit_move_insn (operands[3], gen_highpart (DImode, operands[4])); - set_unique_reg_note (insn, REG_EQUAL, mod_equal); - - DONE; -}) - -(define_insn "udivmodtidi3" - [(set (match_operand:TI 0 "register_operand" "=d,d") - (ior:TI - (ashift:TI - (zero_extend:TI - (truncate:DI - (umod:TI (match_operand:TI 1 "register_operand" "0,0") - (zero_extend:TI - (match_operand:DI 2 "nonimmediate_operand" "d,T"))))) - (const_int 64)) - (zero_extend:TI - (truncate:DI - (udiv:TI (match_dup 1) (zero_extend:TI (match_dup 2)))))))] - "TARGET_ZARCH" - "@ - dlgr\t%0,%2 - dlg\t%0,%2" - [(set_attr "op_type" "RRE,RXY") - (set_attr "type" "idiv")]) - -; -; divmodsi4 instruction pattern(s). -; - -(define_expand "divmodsi4" - [(parallel [(set (match_operand:SI 0 "general_operand" "") - (div:SI (match_operand:SI 1 "general_operand" "") - (match_operand:SI 2 "nonimmediate_operand" ""))) - (set (match_operand:SI 3 "general_operand" "") - (mod:SI (match_dup 1) (match_dup 2)))]) - (clobber (match_dup 4))] - "!TARGET_ZARCH" -{ - rtx div_equal, mod_equal, equal; - rtx_insn *insn; - - div_equal = gen_rtx_DIV (SImode, operands[1], operands[2]); - mod_equal = gen_rtx_MOD (SImode, operands[1], operands[2]); - equal = gen_rtx_IOR (DImode, - gen_rtx_ASHIFT (DImode, - gen_rtx_ZERO_EXTEND (DImode, mod_equal), - GEN_INT (32)), - gen_rtx_ZERO_EXTEND (DImode, div_equal)); - - operands[4] = gen_reg_rtx(DImode); - emit_insn (gen_extendsidi2 (operands[4], operands[1])); - - insn = emit_insn (gen_divmoddisi3 (operands[4], operands[4], operands[2])); - set_unique_reg_note (insn, REG_EQUAL, equal); - - insn = emit_move_insn (operands[0], gen_lowpart (SImode, operands[4])); - set_unique_reg_note (insn, REG_EQUAL, div_equal); - - insn = emit_move_insn (operands[3], gen_highpart (SImode, operands[4])); - set_unique_reg_note (insn, REG_EQUAL, mod_equal); - - DONE; -}) - -(define_insn "divmoddisi3" - [(set (match_operand:DI 0 "register_operand" "=d,d") - (ior:DI - (ashift:DI - (zero_extend:DI - (truncate:SI - (mod:DI (match_operand:DI 1 "register_operand" "0,0") - (sign_extend:DI - (match_operand:SI 2 "nonimmediate_operand" "d,R"))))) - (const_int 32)) - (zero_extend:DI - (truncate:SI - (div:DI (match_dup 1) (sign_extend:DI (match_dup 2)))))))] - "!TARGET_ZARCH" - "@ - dr\t%0,%2 - d\t%0,%2" - [(set_attr "op_type" "RR,RX") + (zero_extend:TI + (div:DI (match_dup 1) (sign_extend:DI (match_dup 2))))))] + "" + "@ + dsgfr\t%0,%2 + dsgf\t%0,%2" + [(set_attr "op_type" "RRE,RXY") (set_attr "type" "idiv")]) ; -; udivsi3 and umodsi3 instruction pattern(s). +; udivmoddi4 instruction pattern(s). ; -(define_expand "udivmodsi4" - [(parallel [(set (match_operand:SI 0 "general_operand" "") - (udiv:SI (match_operand:SI 1 "general_operand" "") - (match_operand:SI 2 "nonimmediate_operand" ""))) - (set (match_operand:SI 3 "general_operand" "") - (umod:SI (match_dup 1) (match_dup 2)))]) +(define_expand "udivmoddi4" + [(parallel [(set (match_operand:DI 0 "general_operand" "") + (udiv:DI (match_operand:DI 1 "general_operand" "") + (match_operand:DI 2 "nonimmediate_operand" ""))) + (set (match_operand:DI 3 "general_operand" "") + (umod:DI (match_dup 1) (match_dup 2)))]) (clobber (match_dup 4))] - "!TARGET_ZARCH" + "" { rtx div_equal, mod_equal, equal; rtx_insn *insn; - div_equal = gen_rtx_UDIV (SImode, operands[1], operands[2]); - mod_equal = gen_rtx_UMOD (SImode, operands[1], operands[2]); - equal = gen_rtx_IOR (DImode, - gen_rtx_ASHIFT (DImode, - gen_rtx_ZERO_EXTEND (DImode, mod_equal), - GEN_INT (32)), - gen_rtx_ZERO_EXTEND (DImode, div_equal)); + div_equal = gen_rtx_UDIV (DImode, operands[1], operands[2]); + mod_equal = gen_rtx_UMOD (DImode, operands[1], operands[2]); + equal = gen_rtx_IOR (TImode, + gen_rtx_ASHIFT (TImode, + gen_rtx_ZERO_EXTEND (TImode, mod_equal), + GEN_INT (64)), + gen_rtx_ZERO_EXTEND (TImode, div_equal)); - operands[4] = gen_reg_rtx(DImode); + operands[4] = gen_reg_rtx(TImode); emit_clobber (operands[4]); - emit_move_insn (gen_lowpart (SImode, operands[4]), operands[1]); - emit_move_insn (gen_highpart (SImode, operands[4]), const0_rtx); + emit_move_insn (gen_lowpart (DImode, operands[4]), operands[1]); + emit_move_insn (gen_highpart (DImode, operands[4]), const0_rtx); - insn = emit_insn (gen_udivmoddisi3 (operands[4], operands[4], operands[2])); + insn = emit_insn (gen_udivmodtidi3 (operands[4], operands[4], operands[2])); set_unique_reg_note (insn, REG_EQUAL, equal); - insn = emit_move_insn (operands[0], gen_lowpart (SImode, operands[4])); + insn = emit_move_insn (operands[0], gen_lowpart (DImode, operands[4])); set_unique_reg_note (insn, REG_EQUAL, div_equal); - insn = emit_move_insn (operands[3], gen_highpart (SImode, operands[4])); + insn = emit_move_insn (operands[3], gen_highpart (DImode, operands[4])); set_unique_reg_note (insn, REG_EQUAL, mod_equal); DONE; }) -(define_insn "udivmoddisi3" - [(set (match_operand:DI 0 "register_operand" "=d,d") - (ior:DI - (ashift:DI - (zero_extend:DI - (truncate:SI - (umod:DI (match_operand:DI 1 "register_operand" "0,0") - (zero_extend:DI - (match_operand:SI 2 "nonimmediate_operand" "d,T"))))) - (const_int 32)) - (zero_extend:DI - (truncate:SI - (udiv:DI (match_dup 1) (zero_extend:DI (match_dup 2)))))))] - "!TARGET_ZARCH" - "@ - dlr\t%0,%2 - dl\t%0,%2" +(define_insn "udivmodtidi3" + [(set (match_operand:TI 0 "register_operand" "=d,d") + (ior:TI + (ashift:TI + (zero_extend:TI + (truncate:DI + (umod:TI (match_operand:TI 1 "register_operand" "0,0") + (zero_extend:TI + (match_operand:DI 2 "nonimmediate_operand" "d,T"))))) + (const_int 64)) + (zero_extend:TI + (truncate:DI + (udiv:TI (match_dup 1) (zero_extend:TI (match_dup 2)))))))] + "" + "@ + dlgr\t%0,%2 + dlg\t%0,%2" [(set_attr "op_type" "RRE,RXY") (set_attr "type" "idiv")]) @@ -8125,7 +7406,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d,d,d, d") (and:DI (match_dup 1) (match_dup 2)))] - "TARGET_ZARCH && s390_match_ccmode(insn, CCTmode)" + "s390_match_ccmode(insn, CCTmode)" "@ ngr\t%0,%2 ngrk\t%0,%1,%2 @@ -8142,8 +7423,7 @@ (match_operand:DI 2 "general_operand" " d,d,T,NxxDw")) (const_int 0))) (clobber (match_scratch:DI 0 "=d,d,d, d"))] - "TARGET_ZARCH - && s390_match_ccmode(insn, CCTmode) + "s390_match_ccmode(insn, CCTmode) /* Do not steal TM patterns. */ && s390_single_part (operands[2], DImode, HImode, 0) < 0" "@ @@ -8164,7 +7444,7 @@ (match_operand:DI 2 "general_operand" "M, M,N0HDF,N1HDF,N2HDF,N3HDF,N0SDF,N1SDF,d,d,T,NxxDw,NxQDF,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ # # @@ -8209,11 +7489,11 @@ ;; These two are what combine generates for (ashift (zero_extract)). (define_insn "*extzv__srl" - [(set (match_operand:GPR 0 "register_operand" "=d") - (and:GPR (lshiftrt:GPR - (match_operand:GPR 1 "register_operand" "d") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (match_operand:GPR 3 "contiguous_bitmask_nowrap_operand" "")))] + [(set (match_operand:DSI 0 "register_operand" "=d") + (and:DSI (lshiftrt:DSI + (match_operand:DSI 1 "register_operand" "d") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (match_operand:DSI 3 "contiguous_bitmask_nowrap_operand" "")))] " /* Note that even for the SImode pattern, the rotate is always DImode. */ && s390_extzv_shift_ok (, -INTVAL (operands[2]), @@ -8239,11 +7519,11 @@ (set_attr "mnemonic" "")]) (define_insn "*extzv__sll" - [(set (match_operand:GPR 0 "register_operand" "=d") - (and:GPR (ashift:GPR - (match_operand:GPR 1 "register_operand" "d") - (match_operand:GPR 2 "nonzero_shift_count_operand" "")) - (match_operand:GPR 3 "contiguous_bitmask_nowrap_operand" "")))] + [(set (match_operand:DSI 0 "register_operand" "=d") + (and:DSI (ashift:DSI + (match_operand:DSI 1 "register_operand" "d") + (match_operand:DSI 2 "nonzero_shift_count_operand" "")) + (match_operand:DSI 3 "contiguous_bitmask_nowrap_operand" "")))] " && s390_extzv_shift_ok (, INTVAL (operands[2]), INTVAL (operands[3])) @@ -8312,7 +7592,7 @@ (set_attr "z10prop" "z10_super_E1,z10_super_E1,*, z10_super_E1,z10_super_E1,z10_super_E1")]) -(define_insn "*andsi3_zarch" +(define_insn "*andsi3" [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d, d, d, d,d,d,d,d, d, AQ,Q") (and:SI (match_operand:SI 1 "nonimmediate_operand" @@ -8320,7 +7600,7 @@ (match_operand:SI 2 "general_operand" " M,M,N0HSF,N1HSF,Os,d,d,R,T,NxxSw,NxQSF,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ # # @@ -8349,21 +7629,6 @@ *, *")]) -(define_insn "*andsi3_esa" - [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d, AQ,Q") - (and:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0, 0,0") - (match_operand:SI 2 "general_operand" " d,R,NxQSF,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - nr\t%0,%2 - n\t%0,%2 - # - #" - [(set_attr "op_type" "RR,RX,SI,SS") - (set_attr "z10prop" "z10_super_E1,z10_super_E1,*,*")]) - - (define_split [(set (match_operand:SI 0 "s_operand" "") (and:SI (match_dup 0) (match_operand:SI 1 "immediate_operand" ""))) @@ -8378,12 +7643,12 @@ ; andhi3 instruction pattern(s). ; -(define_insn "*andhi3_zarch" +(define_insn "*andhi3" [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d, AQ,Q") (and:HI (match_operand:HI 1 "nonimmediate_operand" "%0,d,0, 0,0") (match_operand:HI 2 "general_operand" " d,d,n,NxQHF,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ nr\t%0,%2 nrk\t%0,%1,%2 @@ -8395,20 +7660,6 @@ (set_attr "z10prop" "z10_super_E1,*,z10_super_E1,*,*") ]) -(define_insn "*andhi3_esa" - [(set (match_operand:HI 0 "nonimmediate_operand" "=d,AQ,Q") - (and:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:HI 2 "general_operand" "d,NxQHF,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - nr\t%0,%2 - # - #" - [(set_attr "op_type" "RR,SI,SS") - (set_attr "z10prop" "z10_super_E1,*,*") -]) - (define_split [(set (match_operand:HI 0 "s_operand" "") (and:HI (match_dup 0) (match_operand:HI 1 "immediate_operand" ""))) @@ -8423,12 +7674,12 @@ ; andqi3 instruction pattern(s). ; -(define_insn "*andqi3_zarch" +(define_insn "*andqi3" [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,Q,S,Q") (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,d,0,0,0,0") (match_operand:QI 2 "general_operand" " d,d,n,n,n,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ nr\t%0,%2 nrk\t%0,%1,%2 @@ -8440,28 +7691,15 @@ (set_attr "cpu_facility" "*,z196,*,*,longdisp,*") (set_attr "z10prop" "z10_super_E1,*,z10_super_E1,z10_super,z10_super,*")]) -(define_insn "*andqi3_esa" - [(set (match_operand:QI 0 "nonimmediate_operand" "=d,Q,Q") - (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:QI 2 "general_operand" "d,n,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - nr\t%0,%2 - ni\t%S0,%b2 - #" - [(set_attr "op_type" "RR,SI,SS") - (set_attr "z10prop" "z10_super_E1,z10_super,*")]) - ; ; And with complement ; ; c = ~b & a = (b & a) ^ a (define_insn_and_split "*andc_split_" - [(set (match_operand:GPR 0 "nonimmediate_operand" "") - (and:GPR (not:GPR (match_operand:GPR 1 "nonimmediate_operand" "")) - (match_operand:GPR 2 "general_operand" ""))) + [(set (match_operand:DSI 0 "nonimmediate_operand" "") + (and:DSI (not:DSI (match_operand:DSI 1 "nonimmediate_operand" "")) + (match_operand:DSI 2 "general_operand" ""))) (clobber (reg:CC CC_REGNUM))] "!TARGET_Z15 && ! reload_completed @@ -8473,10 +7711,10 @@ "&& 1" [ (parallel - [(set (match_dup 3) (and:GPR (match_dup 1) (match_dup 2))) + [(set (match_dup 3) (and:DSI (match_dup 1) (match_dup 2))) (clobber (reg:CC CC_REGNUM))]) (parallel - [(set (match_dup 0) (xor:GPR (match_dup 3) (match_dup 2))) + [(set (match_dup 0) (xor:DSI (match_dup 3) (match_dup 2))) (clobber (reg:CC CC_REGNUM))])] { if (reg_overlap_mentioned_p (operands[0], operands[2])) @@ -8568,7 +7806,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d,d,d") (ior:DI (match_dup 1) (match_dup 2)))] - "s390_match_ccmode(insn, CCTmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCTmode)" "@ ogr\t%0,%2 ogrk\t%0,%1,%2 @@ -8583,7 +7821,7 @@ (match_operand:DI 2 "general_operand" " d,d,T")) (const_int 0))) (clobber (match_scratch:DI 0 "=d,d,d"))] - "s390_match_ccmode(insn, CCTmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCTmode)" "@ ogr\t%0,%2 ogrk\t%0,%1,%2 @@ -8600,7 +7838,7 @@ (match_operand:DI 2 "general_operand" "N0HD0,N1HD0,N2HD0,N3HD0,N0SD0,N1SD0,d,d,T,NxQD0,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ oihh\t%0,%i2 oihl\t%0,%i2 @@ -8676,12 +7914,12 @@ (set_attr "cpu_facility" "*,*,z196,*,longdisp") (set_attr "z10prop" "z10_super_E1,z10_super_E1,*,z10_super_E1,z10_super_E1")]) -(define_insn "*iorsi3_zarch" +(define_insn "*iorsi3" [(set (match_operand:SI 0 "nonimmediate_operand" "=d, d, d,d,d,d,d, AQ,Q") (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0, 0, 0,0,d,0,0, 0,0") (match_operand:SI 2 "general_operand" "N0HS0,N1HS0,Os,d,d,R,T,NxQS0,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ oilh\t%0,%i2 oill\t%0,%i2 @@ -8704,20 +7942,6 @@ *, *")]) -(define_insn "*iorsi3_esa" - [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,AQ,Q") - (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,0,0") - (match_operand:SI 2 "general_operand" "d,R,NxQS0,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - or\t%0,%2 - o\t%0,%2 - # - #" - [(set_attr "op_type" "RR,RX,SI,SS") - (set_attr "z10prop" "z10_super_E1,z10_super_E1,*,*")]) - (define_split [(set (match_operand:SI 0 "s_operand" "") (ior:SI (match_dup 0) (match_operand:SI 1 "immediate_operand" ""))) @@ -8732,12 +7956,12 @@ ; iorhi3 instruction pattern(s). ; -(define_insn "*iorhi3_zarch" +(define_insn "*iorhi3" [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d, AQ,Q") (ior:HI (match_operand:HI 1 "nonimmediate_operand" "%0,d,0, 0,0") (match_operand:HI 2 "general_operand" " d,d,n,NxQH0,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ or\t%0,%2 ork\t%0,%1,%2 @@ -8748,19 +7972,6 @@ (set_attr "cpu_facility" "*,z196,*,*,*") (set_attr "z10prop" "z10_super_E1,*,z10_super_E1,*,*")]) -(define_insn "*iorhi3_esa" - [(set (match_operand:HI 0 "nonimmediate_operand" "=d,AQ,Q") - (ior:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:HI 2 "general_operand" "d,NxQH0,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - or\t%0,%2 - # - #" - [(set_attr "op_type" "RR,SI,SS") - (set_attr "z10prop" "z10_super_E1,*,*")]) - (define_split [(set (match_operand:HI 0 "s_operand" "") (ior:HI (match_dup 0) (match_operand:HI 1 "immediate_operand" ""))) @@ -8775,12 +7986,12 @@ ; iorqi3 instruction pattern(s). ; -(define_insn "*iorqi3_zarch" +(define_insn "*iorqi3" [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,Q,S,Q") (ior:QI (match_operand:QI 1 "nonimmediate_operand" "%0,d,0,0,0,0") (match_operand:QI 2 "general_operand" " d,d,n,n,n,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ or\t%0,%2 ork\t%0,%1,%2 @@ -8793,57 +8004,44 @@ (set_attr "z10prop" "z10_super_E1,*,z10_super_E1, z10_super,z10_super,*")]) -(define_insn "*iorqi3_esa" - [(set (match_operand:QI 0 "nonimmediate_operand" "=d,Q,Q") - (ior:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:QI 2 "general_operand" "d,n,Q"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH && s390_logical_operator_ok_p (operands)" - "@ - or\t%0,%2 - oi\t%S0,%b2 - #" - [(set_attr "op_type" "RR,SI,SS") - (set_attr "z10prop" "z10_super_E1,z10_super,*")]) - ; ; And/Or with complement ; ; ncrk, ncgrk, ocrk, ocgrk -(define_insn "*c_cc" +(define_insn "*c_cc" [(set (reg CC_REGNUM) (compare - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (match_operand:GPR 2 "register_operand" "d")) + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (match_operand:DSI 2 "register_operand" "d")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (ANDOR:GPR (not:GPR (match_dup 1)) + (set (match_operand:DSI 0 "register_operand" "=d") + (ANDOR:DSI (not:DSI (match_dup 1)) (match_dup 2)))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "crk\t%0,%2,%1" + "crk\t%0,%2,%1" [(set_attr "op_type" "RRF")]) ; ncrk, ncgrk, ocrk, ocgrk -(define_insn "*c_cconly" +(define_insn "*c_cconly" [(set (reg CC_REGNUM) (compare - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (match_operand:GPR 2 "register_operand" "d")) + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (match_operand:DSI 2 "register_operand" "d")) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "crk\t%0,%2,%1" + "crk\t%0,%2,%1" [(set_attr "op_type" "RRF")]) ; ncrk, ncgrk, ocrk, ocgrk -(define_insn "*c" - [(set (match_operand:GPR 0 "register_operand" "=d") - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (match_operand:GPR 2 "register_operand" "d"))) +(define_insn "*c" + [(set (match_operand:DSI 0 "register_operand" "=d") + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (match_operand:DSI 2 "register_operand" "d"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z15" - "crk\t%0,%2,%1" + "crk\t%0,%2,%1" [(set_attr "op_type" "RRF")]) ; @@ -8851,48 +8049,48 @@ ; ; nnrk, nngrk, nork, nogrk -(define_insn "*n_cc" +(define_insn "*n_cc" [(set (reg CC_REGNUM) (compare - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (not:GPR (match_operand:GPR 2 "register_operand" "d"))) + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (not:DSI (match_operand:DSI 2 "register_operand" "d"))) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (ANDOR:GPR (not:GPR (match_dup 1)) - (not:GPR (match_dup 2))))] + (set (match_operand:DSI 0 "register_operand" "=d") + (ANDOR:DSI (not:DSI (match_dup 1)) + (not:DSI (match_dup 2))))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "nrk\t%0,%1,%2" + "nrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ; nnrk, nngrk, nork, nogrk (define_insn "*n_cconly" [(set (reg CC_REGNUM) (compare - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (not:GPR (match_operand:GPR 2 "register_operand" "d"))) + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (not:DSI (match_operand:DSI 2 "register_operand" "d"))) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "nrk\t%0,%1,%2" + "nrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ; nnrk, nngrk, nork, nogrk (define_insn "*n" - [(set (match_operand:GPR 0 "register_operand" "=d") - (ANDOR:GPR (not:GPR (match_operand:GPR 1 "register_operand" "d")) - (not:GPR (match_operand:GPR 2 "register_operand" "d")))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (ANDOR:DSI (not:DSI (match_operand:DSI 1 "register_operand" "d")) + (not:DSI (match_operand:DSI 2 "register_operand" "d")))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z15" - "nrk\t%0,%1,%2" + "nrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ; Use NAND for bit inversion (define_insn "*not" - [(set (match_operand:GPR 0 "register_operand" "=d") - (not:GPR (match_operand:GPR 1 "register_operand" "d"))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (not:DSI (match_operand:DSI 1 "register_operand" "d"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z15" - "nnrk\t%0,%1,%1" + "nnrk\t%0,%1,%1" [(set_attr "op_type" "RRF")]) ; @@ -8993,7 +8191,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d,d,d") (xor:DI (match_dup 1) (match_dup 2)))] - "s390_match_ccmode(insn, CCTmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCTmode)" "@ xgr\t%0,%2 xgrk\t%0,%1,%2 @@ -9008,7 +8206,7 @@ (match_operand:DI 2 "general_operand" " d,d,T")) (const_int 0))) (clobber (match_scratch:DI 0 "=d,d,d"))] - "s390_match_ccmode(insn, CCTmode) && TARGET_ZARCH" + "s390_match_ccmode(insn, CCTmode)" "@ xgr\t%0,%2 xgrk\t%0,%1,%2 @@ -9022,7 +8220,7 @@ (xor:DI (match_operand:DI 1 "nonimmediate_operand" "%0, 0,0,d,0, 0,0") (match_operand:DI 2 "general_operand" "N0SD0,N1SD0,d,d,T,NxQD0,Q"))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH && s390_logical_operator_ok_p (operands)" + "s390_logical_operator_ok_p (operands)" "@ xihf\t%0,%k2 xilf\t%0,%k2 @@ -9265,39 +8463,39 @@ ; ; nxrk, nxgrk -(define_insn "*nxor_cc" +(define_insn "*nxor_cc" [(set (reg CC_REGNUM) (compare - (not:GPR (xor:GPR (match_operand:GPR 1 "register_operand" "d") - (match_operand:GPR 2 "register_operand" "d"))) + (not:DSI (xor:DSI (match_operand:DSI 1 "register_operand" "d") + (match_operand:DSI 2 "register_operand" "d"))) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (xor:GPR (not:GPR (match_dup 1)) + (set (match_operand:DSI 0 "register_operand" "=d") + (xor:DSI (not:DSI (match_dup 1)) (match_dup 2)))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "nxrk\t%0,%1,%2" + "nxrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ; nxrk, nxgrk (define_insn "*nxor_cconly" [(set (reg CC_REGNUM) (compare - (not:GPR (xor:GPR (match_operand:GPR 1 "register_operand" "d") - (match_operand:GPR 2 "register_operand" "d"))) + (not:DSI (xor:DSI (match_operand:DSI 1 "register_operand" "d") + (match_operand:DSI 2 "register_operand" "d"))) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "TARGET_Z15 && s390_match_ccmode(insn, CCTmode)" - "nxrk\t%0,%1,%2" + "nxrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ; nxrk, nxgrk (define_insn "*nxor" - [(set (match_operand:GPR 0 "register_operand" "=d") - (not:GPR (xor:GPR (match_operand:GPR 1 "register_operand" "d") - (match_operand:GPR 2 "register_operand" "d")))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (not:DSI (xor:DSI (match_operand:DSI 1 "register_operand" "d") + (match_operand:DSI 2 "register_operand" "d")))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z15" - "nxrk\t%0,%1,%2" + "nxrk\t%0,%1,%2" [(set_attr "op_type" "RRF")]) ;; @@ -9324,7 +8522,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d") (neg:DI (sign_extend:DI (match_dup 1))))] - "TARGET_ZARCH && s390_match_ccmode (insn, CCAmode)" + "s390_match_ccmode (insn, CCAmode)" "lcgfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9333,7 +8531,7 @@ [(set (match_operand:DI 0 "register_operand" "=d") (neg:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "d")))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "lcgfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9341,10 +8539,10 @@ ; lcr, lcgr (define_insn "*neg2_cc" [(set (reg CC_REGNUM) - (compare (neg:GPR (match_operand:GPR 1 "register_operand" "d")) + (compare (neg:DSI (match_operand:DSI 1 "register_operand" "d")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (neg:GPR (match_dup 1)))] + (set (match_operand:DSI 0 "register_operand" "=d") + (neg:DSI (match_dup 1)))] "s390_match_ccmode (insn, CCAmode)" "lcr\t%0,%1" [(set_attr "op_type" "RR") @@ -9353,9 +8551,9 @@ ; lcr, lcgr (define_insn "*neg2_cconly" [(set (reg CC_REGNUM) - (compare (neg:GPR (match_operand:GPR 1 "register_operand" "d")) + (compare (neg:DSI (match_operand:DSI 1 "register_operand" "d")) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "s390_match_ccmode (insn, CCAmode)" "lcr\t%0,%1" [(set_attr "op_type" "RR") @@ -9363,91 +8561,14 @@ ; lcr, lcgr (define_insn "*neg2" - [(set (match_operand:GPR 0 "register_operand" "=d") - (neg:GPR (match_operand:GPR 1 "register_operand" "d"))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (neg:DSI (match_operand:DSI 1 "register_operand" "d"))) (clobber (reg:CC CC_REGNUM))] "" "lcr\t%0,%1" [(set_attr "op_type" "RR") (set_attr "z10prop" "z10_super_c_E1")]) -(define_insn "*negdi2_31" - [(set (match_operand:DI 0 "register_operand" "=d") - (neg:DI (match_operand:DI 1 "register_operand" "d"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "#") - -; Split a DImode NEG on 31bit into 2 SImode NEGs - -; Doing the twos complement separately on the SImode parts does an -; unwanted +1 on the high part which needs to be subtracted afterwards -; ... unless the +1 on the low part created an overflow. - -(define_split - [(set (match_operand:DI 0 "register_operand" "") - (neg:DI (match_operand:DI 1 "register_operand" ""))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH - && reload_completed - && ((REG_P (operands[0]) && REG_P (operands[1]) - && REGNO (operands[0]) == REGNO (operands[1])) - || s390_split_ok_p (operands[0], operands[1], DImode, 0))" - [(parallel - [(set (match_dup 2) (neg:SI (match_dup 3))) - (clobber (reg:CC CC_REGNUM))]) - (parallel - [(set (reg:CCAP CC_REGNUM) - (compare:CCAP (neg:SI (match_dup 5)) (const_int 0))) - (set (match_dup 4) (neg:SI (match_dup 5)))]) - (set (pc) - (if_then_else (ne (reg:CCAP CC_REGNUM) (const_int 0)) - (pc) - (label_ref (match_dup 6)))) - (parallel - [(set (match_dup 2) (plus:SI (match_dup 2) (const_int -1))) - (clobber (reg:CC CC_REGNUM))]) - (match_dup 6)] - "operands[2] = operand_subword (operands[0], 0, 0, DImode); - operands[3] = operand_subword (operands[1], 0, 0, DImode); - operands[4] = operand_subword (operands[0], 1, 0, DImode); - operands[5] = operand_subword (operands[1], 1, 0, DImode); - operands[6] = gen_label_rtx ();") - -; Like above but first make a copy of the low part of the src operand -; since it might overlap with the high part of the destination. - -(define_split - [(set (match_operand:DI 0 "register_operand" "") - (neg:DI (match_operand:DI 1 "register_operand" ""))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH - && s390_split_ok_p (operands[0], operands[1], DImode, 1) - && reload_completed" - [; Make a backup of op5 first - (set (match_dup 4) (match_dup 5)) - ; Setting op2 here might clobber op5 - (parallel - [(set (match_dup 2) (neg:SI (match_dup 3))) - (clobber (reg:CC CC_REGNUM))]) - (parallel - [(set (reg:CCAP CC_REGNUM) - (compare:CCAP (neg:SI (match_dup 4)) (const_int 0))) - (set (match_dup 4) (neg:SI (match_dup 4)))]) - (set (pc) - (if_then_else (ne (reg:CCAP CC_REGNUM) (const_int 0)) - (pc) - (label_ref (match_dup 6)))) - (parallel - [(set (match_dup 2) (plus:SI (match_dup 2) (const_int -1))) - (clobber (reg:CC CC_REGNUM))]) - (match_dup 6)] - "operands[2] = operand_subword (operands[0], 0, 0, DImode); - operands[3] = operand_subword (operands[1], 0, 0, DImode); - operands[4] = operand_subword (operands[0], 1, 0, DImode); - operands[5] = operand_subword (operands[1], 1, 0, DImode); - operands[6] = gen_label_rtx ();") - ; ; neg(tf|df|sf)2 instruction pattern(s). ; @@ -9525,7 +8646,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d") (abs:DI (sign_extend:DI (match_dup 1))))] - "TARGET_ZARCH && s390_match_ccmode (insn, CCAmode)" + "s390_match_ccmode (insn, CCAmode)" "lpgfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9534,7 +8655,7 @@ [(set (match_operand:DI 0 "register_operand" "=d") (abs:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "d")))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "lpgfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9542,10 +8663,10 @@ ; lpr, lpgr (define_insn "*abs2_cc" [(set (reg CC_REGNUM) - (compare (abs:GPR (match_operand:DI 1 "register_operand" "d")) + (compare (abs:DSI (match_operand:DI 1 "register_operand" "d")) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (abs:GPR (match_dup 1)))] + (set (match_operand:DSI 0 "register_operand" "=d") + (abs:DSI (match_dup 1)))] "s390_match_ccmode (insn, CCAmode)" "lpr\t%0,%1" [(set_attr "op_type" "RR") @@ -9554,9 +8675,9 @@ ; lpr, lpgr (define_insn "*abs2_cconly" [(set (reg CC_REGNUM) - (compare (abs:GPR (match_operand:GPR 1 "register_operand" "d")) + (compare (abs:DSI (match_operand:DSI 1 "register_operand" "d")) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "s390_match_ccmode (insn, CCAmode)" "lpr\t%0,%1" [(set_attr "op_type" "RR") @@ -9564,8 +8685,8 @@ ; lpr, lpgr (define_insn "abs2" - [(set (match_operand:GPR 0 "register_operand" "=d") - (abs:GPR (match_operand:GPR 1 "register_operand" "d"))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (abs:DSI (match_operand:DSI 1 "register_operand" "d"))) (clobber (reg:CC CC_REGNUM))] "" "lpr\t%0,%1" @@ -9646,10 +8767,10 @@ (define_expand "3" [(set (reg: CC_REGNUM) - (compare: (match_operand:GPR 1 "loc_operand") - (match_operand:GPR 2 "loc_operand"))) - (set (match_operand:GPR 0 "nonimmediate_operand") - (if_then_else:GPR (MINMAXOP (reg: CC_REGNUM) (const_int 0)) + (compare: (match_operand:DSI 1 "loc_operand") + (match_operand:DSI 2 "loc_operand"))) + (set (match_operand:DSI 0 "nonimmediate_operand") + (if_then_else:DSI (MINMAXOP (reg: CC_REGNUM) (const_int 0)) (match_dup 1) (match_dup 2)))] "TARGET_Z196") @@ -9671,7 +8792,7 @@ (const_int 0))) (set (match_operand:DI 0 "register_operand" "=d") (neg:DI (abs:DI (sign_extend:DI (match_dup 1)))))] - "TARGET_ZARCH && s390_match_ccmode (insn, CCAmode)" + "s390_match_ccmode (insn, CCAmode)" "lngfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9681,7 +8802,7 @@ (neg:DI (abs:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "d"))))) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" "lngfr\t%0,%1" [(set_attr "op_type" "RRE") (set_attr "z10prop" "z10_c")]) @@ -9689,10 +8810,10 @@ ; lnr, lngr (define_insn "*negabs2_cc" [(set (reg CC_REGNUM) - (compare (neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d"))) + (compare (neg:DSI (abs:DSI (match_operand:DSI 1 "register_operand" "d"))) (const_int 0))) - (set (match_operand:GPR 0 "register_operand" "=d") - (neg:GPR (abs:GPR (match_dup 1))))] + (set (match_operand:DSI 0 "register_operand" "=d") + (neg:DSI (abs:DSI (match_dup 1))))] "s390_match_ccmode (insn, CCAmode)" "lnr\t%0,%1" [(set_attr "op_type" "RR") @@ -9701,9 +8822,9 @@ ; lnr, lngr (define_insn "*negabs2_cconly" [(set (reg CC_REGNUM) - (compare (neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d"))) + (compare (neg:DSI (abs:DSI (match_operand:DSI 1 "register_operand" "d"))) (const_int 0))) - (clobber (match_scratch:GPR 0 "=d"))] + (clobber (match_scratch:DSI 0 "=d"))] "s390_match_ccmode (insn, CCAmode)" "lnr\t%0,%1" [(set_attr "op_type" "RR") @@ -9711,8 +8832,8 @@ ; lnr, lngr (define_insn "*negabs2" - [(set (match_operand:GPR 0 "register_operand" "=d") - (neg:GPR (abs:GPR (match_operand:GPR 1 "register_operand" "d")))) + [(set (match_operand:DSI 0 "register_operand" "=d") + (neg:DSI (abs:DSI (match_operand:DSI 1 "register_operand" "d")))) (clobber (reg:CC CC_REGNUM))] "" "lnr\t%0,%1" @@ -9818,9 +8939,9 @@ (define_expand "clzdi2" [(set (match_operand:DI 0 "register_operand" "=d") (clz:DI (match_operand:DI 1 "register_operand" "d")))] - "TARGET_EXTIMM && TARGET_ZARCH" + "TARGET_EXTIMM" { - if (!(TARGET_Z17 && TARGET_64BIT)) + if (!TARGET_Z17) { rtx_insn *insn; rtx clz_equal; @@ -9841,7 +8962,7 @@ (define_insn "*clzg" [(set (match_operand:DI 0 "register_operand" "=d") (clz:DI (match_operand:DI 1 "register_operand" "d")))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "clzg\t%0,%1" [(set_attr "op_type" "RRE")]) @@ -9858,14 +8979,14 @@ (subreg:SI (clz:DI (match_dup 1)) 4)))))) (clobber (reg:CC CC_REGNUM))] "UINTVAL (operands[2]) == HOST_WIDE_INT_1U << 63 - && TARGET_EXTIMM && TARGET_ZARCH" + && TARGET_EXTIMM" "flogr\t%0,%1" [(set_attr "op_type" "RRE")]) (define_expand "clzsi2" [(match_operand:SI 0 "register_operand" "") (match_operand:SI 1 "register_operand" "")] - "TARGET_EXTIMM && TARGET_ZARCH" + "TARGET_EXTIMM" { rtx extreg = gen_reg_rtx (DImode); rtx clzreg = gen_reg_rtx (DImode); @@ -9883,7 +9004,7 @@ (define_insn "ctzdi2" [(set (match_operand:DI 0 "register_operand" "=d") (ctz:DI (match_operand:DI 1 "register_operand" "d")))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" "ctzg\t%0,%1" [(set_attr "op_type" "RRE")]) @@ -9892,7 +9013,7 @@ (zero_extend:DI (match_operand:SI 1 "register_operand" ""))) (set (match_dup 3) (ctz:DI (match_dup 2))) (set (match_operand:SI 0 "register_operand" "") (subreg:SI (match_dup 3) 4))] - "TARGET_Z17 && TARGET_64BIT" + "TARGET_Z17" { operands[2] = gen_reg_rtx (DImode); operands[3] = gen_reg_rtx (DImode); @@ -9907,16 +9028,16 @@ ; (define_expand "rotl3" - [(set (match_operand:GPR 0 "register_operand" "") - (rotate:GPR (match_operand:GPR 1 "register_operand" "") + [(set (match_operand:DSI 0 "register_operand" "") + (rotate:DSI (match_operand:DSI 1 "register_operand" "") (match_operand:QI 2 "shift_count_operand" "")))] "" "") ; rll, rllg (define_insn "*rotl3" - [(set (match_operand:GPR 0 "register_operand" "=d") - (rotate:GPR (match_operand:GPR 1 "register_operand" "d") + [(set (match_operand:DSI 0 "register_operand" "=d") + (rotate:DSI (match_operand:DSI 1 "register_operand" "d") (match_operand:QI 2 "shift_count_operand" "jsc")))] "" "rll\t%0,%1,%Y2" @@ -9940,24 +9061,12 @@ "" "") -; ESA 64 bit register pair shift with reg or imm shift count -; sldl, srdl -(define_insn "*di3_31" - [(set (match_operand:DI 0 "register_operand" "=d") - (SHIFT:DI (match_operand:DI 1 "register_operand" "0") - (match_operand:QI 2 "shift_count_operand" "jsc")))] - "!TARGET_ZARCH" - "sdl\t%0,%Y2" - [(set_attr "op_type" "RS") - (set_attr "atype" "reg") - (set_attr "z196prop" "z196_cracked")]) - ; 64 bit register shift with reg or imm shift count ; sll, srl, sllg, srlg, sllk, srlk (define_insn "*3" - [(set (match_operand:GPR 0 "register_operand" "=d, d") - (SHIFT:GPR (match_operand:GPR 1 "register_operand" ", d") + [(set (match_operand:DSI 0 "register_operand" "=d, d") + (SHIFT:DSI (match_operand:DSI 1 "register_operand" ", d") (match_operand:QI 2 "shift_count_operand" "jsc,jsc")))] "" "@ @@ -9982,21 +9091,11 @@ "" "") -(define_insn "*ashrdi3_31" - [(set (match_operand:DI 0 "register_operand" "=d") - (ashiftrt:DI (match_operand:DI 1 "register_operand" "0") - (match_operand:QI 2 "shift_count_operand" "jsc"))) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" - "srda\t%0,%Y2" - [(set_attr "op_type" "RS") - (set_attr "atype" "reg")]) - ; sra, srag (define_insn "*ashr3" - [(set (match_operand:GPR 0 "register_operand" "=d, d") - (ashiftrt:GPR (match_operand:GPR 1 "register_operand" ", d") + [(set (match_operand:DSI 0 "register_operand" "=d, d") + (ashiftrt:DSI (match_operand:DSI 1 "register_operand" ", d") (match_operand:QI 2 "shift_count_operand" "jsc,jsc"))) (clobber (reg:CC CC_REGNUM))] "" @@ -10016,8 +9115,8 @@ (define_expand "cbranch4" [(set (pc) (if_then_else (match_operator 0 "comparison_operator" - [(match_operand:GPR 1 "register_operand" "") - (match_operand:GPR 2 "general_operand" "")]) + [(match_operand:DSI 1 "register_operand" "") + (match_operand:DSI 2 "general_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] "" @@ -10184,8 +9283,8 @@ (define_expand "ctrap4" [(trap_if (match_operator 0 "comparison_operator" - [(match_operand:GPR 1 "register_operand" "") - (match_operand:GPR 2 "general_operand" "")]) + [(match_operand:DSI 1 "register_operand" "") + (match_operand:DSI 2 "general_operand" "")]) (match_operand 3 "const0_operand" ""))] "" { @@ -10221,8 +9320,8 @@ ; crt, cgrt, cit, cgit (define_insn "*cmp_and_trap_signed_int" [(trap_if (match_operator 0 "s390_signed_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d") - (match_operand:GPR 2 "nonmemory_operand" "d,K")]) + [(match_operand:DSI 1 "register_operand" "d,d") + (match_operand:DSI 2 "nonmemory_operand" "d,K")]) (const_int 0))] "TARGET_Z10" "@ @@ -10235,8 +9334,8 @@ ; clrt, clgrt, clfit, clgit, clt, clgt (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d,d") - (match_operand:GPR 2 "general_operand" "d,D,S")]) + [(match_operand:DSI 1 "register_operand" "d,d,d") + (match_operand:DSI 2 "general_operand" "d,D,S")]) (const_int 0))] "TARGET_Z10" "@ @@ -10250,10 +9349,10 @@ ; lat, lgat (define_insn "*load_and_trap" - [(trap_if (eq (match_operand:GPR 0 "memory_operand" "T") + [(trap_if (eq (match_operand:DSI 0 "memory_operand" "T") (const_int 0)) (const_int 0)) - (set (match_operand:GPR 1 "register_operand" "=d") + (set (match_operand:DSI 1 "register_operand" "=d") (match_dup 0))] "TARGET_ZEC12" "lat\t%1,%0" @@ -10272,19 +9371,19 @@ ; necessary to load the compare and the increment values into a ; register pair as needed by brxle. -(define_insn_and_split "*brx_stage1_" +(define_insn_and_split "*brx_stage1_" [(set (pc) (if_then_else (match_operator 6 "s390_brx_operator" - [(plus:GPR (match_operand:GPR 1 "register_operand" "") - (match_operand:GPR 2 "general_operand" "")) - (match_operand:GPR 3 "register_operand" "")]) + [(plus:DSI (match_operand:DSI 1 "register_operand" "") + (match_operand:DSI 2 "general_operand" "")) + (match_operand:DSI 3 "register_operand" "")]) (label_ref (match_operand 0 "" "")) (pc))) - (set (match_operand:GPR 4 "nonimmediate_operand" "") - (plus:GPR (match_dup 1) (match_dup 2))) + (set (match_operand:DSI 4 "nonimmediate_operand" "") + (plus:DSI (match_dup 1) (match_dup 2))) (clobber (reg:CC CC_REGNUM)) - (clobber (match_scratch:GPR 5 ""))] + (clobber (match_scratch:DSI 5 ""))] "" "#" "!reload_completed && !reload_in_progress" @@ -10293,20 +9392,20 @@ (parallel [(set (pc) (if_then_else (match_op_dup 6 - [(plus:GPR (match_dup 1) (match_dup 7)) + [(plus:DSI (match_dup 1) (match_dup 7)) (match_dup 8)]) (label_ref (match_dup 0)) (pc))) (set (match_dup 4) - (plus:GPR (match_dup 1) (match_dup 7))) + (plus:DSI (match_dup 1) (match_dup 7))) (clobber (match_dup 5)) (clobber (reg:CC CC_REGNUM))])] { - rtx dreg = gen_reg_rtx (word_mode == DImode ? TImode : DImode); - operands[7] = gen_lowpart (mode, - gen_highpart (word_mode, dreg)); - operands[8] = gen_lowpart (mode, - gen_lowpart (word_mode, dreg)); + rtx dreg = gen_reg_rtx (TImode); + operands[7] = gen_lowpart (mode, + gen_highpart (DImode, dreg)); + operands[8] = gen_lowpart (mode, + gen_lowpart (DImode, dreg)); }) ; brxlg, brxhg @@ -10325,7 +9424,7 @@ (subreg:DI (match_dup 2) 0))) (clobber (match_scratch:DI 4 "=X,&1,&?d")) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" { if (which_alternative != 0) return "#"; @@ -10368,7 +9467,7 @@ (subreg:SI (match_dup 2) 4))) (clobber (match_scratch:SI 4 "=X,&1,&?d")) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" { if (which_alternative != 0) return "#"; @@ -10395,49 +9494,6 @@ (if_then_else (lt (abs (minus (pc) (match_dup 0))) (const_int 60000)) (const_int 6) (const_int 14)))]) -; brxle, brxh - -(define_insn_and_split "*brx_31bit" - [(set (pc) - (if_then_else - (match_operator 5 "s390_brx_operator" - [(plus:SI (match_operand:SI 1 "register_operand" "d,d,d") - (subreg:SI (match_operand:DI 2 "register_operand" "d,d,d") 0)) - (subreg:SI (match_dup 2) 4)]) - (label_ref (match_operand 0 "" "")) - (pc))) - (set (match_operand:SI 3 "nonimmediate_operand" "=1,?X,?X") - (plus:SI (match_dup 1) - (subreg:SI (match_dup 2) 0))) - (clobber (match_scratch:SI 4 "=X,&1,&?d")) - (clobber (reg:CC CC_REGNUM))] - "!TARGET_ZARCH" -{ - if (which_alternative != 0) - return "#"; - else if (get_attr_length (insn) == 6) - return "brx%C5\t%1,%2,%l0"; - else - return "ar\t%1,%2\;cr\t%1,%M2\;jg%C5\t%l0"; -} - "&& reload_completed - && (!REG_P (operands[3]) - || !rtx_equal_p (operands[1], operands[3]))" - [(set (match_dup 4) (match_dup 1)) - (parallel [(set (match_dup 4) (plus:SI (match_dup 4) (subreg:SI (match_dup 2) 0))) - (clobber (reg:CC CC_REGNUM))]) - (set (reg:CCS CC_REGNUM) (compare:CCS (match_dup 4) (subreg:SI (match_dup 2) 4))) - (set (match_dup 3) (match_dup 4)) - (set (pc) (if_then_else (match_op_dup 5 [(reg:CCS CC_REGNUM) (const_int 0)]) - (label_ref (match_dup 0)) - (pc)))] - "" - [(set_attr "op_type" "RSI") - (set_attr "type" "branch") - (set (attr "length") - (if_then_else (lt (abs (minus (pc) (match_dup 0))) (const_int 60000)) - (const_int 6) (const_int 14)))]) - ;; branch on count @@ -10448,7 +9504,7 @@ { if (GET_MODE (operands[0]) == SImode) emit_jump_insn (gen_doloop_si64 (operands[1], operands[0], operands[0])); - else if (GET_MODE (operands[0]) == DImode && TARGET_ZARCH) + else if (GET_MODE (operands[0]) == DImode) emit_jump_insn (gen_doloop_di (operands[1], operands[0], operands[0])); else FAIL; @@ -10509,7 +9565,7 @@ (plus:DI (match_dup 1) (const_int -1))) (clobber (match_scratch:DI 3 "=X,&1,&?d")) (clobber (reg:CC CC_REGNUM))] - "TARGET_ZARCH" + "" { if (which_alternative != 0) return "#"; @@ -10589,19 +9645,9 @@ { operands[0] = force_reg (Pmode, operands[0]); if (TARGET_CPU_Z10) - { - if (TARGET_64BIT) - emit_jump_insn (gen_indirect_jump_via_thunkdi_z10 (operands[0])); - else - emit_jump_insn (gen_indirect_jump_via_thunksi_z10 (operands[0])); - } + emit_jump_insn (gen_indirect_jump_via_thunkdi_z10 (operands[0])); else - { - if (TARGET_64BIT) - emit_jump_insn (gen_indirect_jump_via_thunkdi (operands[0])); - else - emit_jump_insn (gen_indirect_jump_via_thunksi (operands[0])); - } + emit_jump_insn (gen_indirect_jump_via_thunkdi (operands[0])); DONE; } @@ -10610,25 +9656,12 @@ operands[0] = force_reg (Pmode, operands[0]); rtx label_ref = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ()); if (TARGET_CPU_Z10) - { - if (TARGET_64BIT) - emit_jump_insn (gen_indirect_jump_via_inlinethunkdi_z10 (operands[0], - label_ref)); - else - emit_jump_insn (gen_indirect_jump_via_inlinethunksi_z10 (operands[0], - label_ref)); - } + emit_jump_insn (gen_indirect_jump_via_inlinethunkdi_z10 (operands[0], + label_ref)); else - { - if (TARGET_64BIT) - emit_jump_insn (gen_indirect_jump_via_inlinethunkdi (operands[0], - label_ref, - force_reg (Pmode, label_ref))); - else - emit_jump_insn (gen_indirect_jump_via_inlinethunksi (operands[0], - label_ref, - force_reg (Pmode, label_ref))); - } + emit_jump_insn (gen_indirect_jump_via_inlinethunkdi (operands[0], + label_ref, + force_reg (Pmode, label_ref))); DONE; } }) @@ -10652,9 +9685,9 @@ (set_attr "type" "branch") (set_attr "atype" "agen")]) -(define_insn "indirect_jump_via_thunk_z10" +(define_insn "indirect_jump_via_thunkdi_z10" [(set (pc) - (match_operand:P 0 "register_operand" "a"))] + (match_operand:DI 0 "register_operand" "a"))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK && TARGET_CPU_Z10" { @@ -10669,10 +9702,10 @@ (set_attr "type" "branch") (set_attr "atype" "agen")]) -(define_insn "indirect_jump_via_thunk" +(define_insn "indirect_jump_via_thunkdi" [(set (pc) - (match_operand:P 0 "register_operand" " a")) - (clobber (reg:P INDIRECT_BRANCH_THUNK_REGNUM))] + (match_operand:DI 0 "register_operand" " a")) + (clobber (reg:DI INDIRECT_BRANCH_THUNK_REGNUM))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK && !TARGET_CPU_Z10" { @@ -10691,12 +9724,12 @@ ; The label_ref is wrapped into an if_then_else in order to hide it ; from mark_jump_label. Without this the label_ref would become the ; ONLY jump target of that jump breaking the control flow graph. -(define_insn "indirect_jump_via_inlinethunk_z10" - [(unspec [(if_then_else (match_operand:P 1 "larl_operand" "X") +(define_insn "indirect_jump_via_inlinethunkdi_z10" + [(unspec [(if_then_else (match_operand:DI 1 "larl_operand" "X") (const_int 0) (const_int 0)) (const_int 0)] UNSPEC_EXECUTE_JUMP) - (set (pc) (match_operand:P 0 "register_operand" "a"))] + (set (pc) (match_operand:DI 0 "register_operand" "a"))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK && TARGET_CPU_Z10" { @@ -10707,12 +9740,12 @@ (set_attr "type" "branch") (set_attr "length" "10")]) -(define_insn "indirect_jump_via_inlinethunk" - [(unspec [(if_then_else (match_operand:P 1 "larl_operand" "X") +(define_insn "indirect_jump_via_inlinethunkdi" + [(unspec [(if_then_else (match_operand:DI 1 "larl_operand" "X") (const_int 0) (const_int 0)) - (match_operand:P 2 "register_operand" "a")] UNSPEC_EXECUTE_JUMP) - (set (pc) (match_operand:P 0 "register_operand" "a"))] + (match_operand:DI 2 "register_operand" "a")] UNSPEC_EXECUTE_JUMP) + (set (pc) (match_operand:DI 0 "register_operand" "a"))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK && !TARGET_CPU_Z10" { @@ -10753,23 +9786,9 @@ operands[0] = force_reg (GET_MODE (operands[0]), operands[0]); if (TARGET_CPU_Z10) - { - if (TARGET_64BIT) - emit_jump_insn (gen_casesi_jump_via_thunkdi_z10 (operands[0], - operands[1])); - else - emit_jump_insn (gen_casesi_jump_via_thunksi_z10 (operands[0], - operands[1])); - } + emit_jump_insn (gen_casesi_jump_via_thunkdi_z10 (operands[0], operands[1])); else - { - if (TARGET_64BIT) - emit_jump_insn (gen_casesi_jump_via_thunkdi (operands[0], - operands[1])); - else - emit_jump_insn (gen_casesi_jump_via_thunksi (operands[0], - operands[1])); - } + emit_jump_insn (gen_casesi_jump_via_thunkdi (operands[0], operands[1])); DONE; } @@ -10778,29 +9797,14 @@ operands[0] = force_reg (Pmode, operands[0]); rtx label_ref = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ()); if (TARGET_CPU_Z10) - { - if (TARGET_64BIT) - emit_jump_insn (gen_casesi_jump_via_inlinethunkdi_z10 (operands[0], - operands[1], - label_ref)); - else - emit_jump_insn (gen_casesi_jump_via_inlinethunksi_z10 (operands[0], - operands[1], - label_ref)); - } - else - { - if (TARGET_64BIT) - emit_jump_insn (gen_casesi_jump_via_inlinethunkdi (operands[0], + emit_jump_insn (gen_casesi_jump_via_inlinethunkdi_z10 (operands[0], operands[1], - label_ref, - force_reg (Pmode, label_ref))); - else - emit_jump_insn (gen_casesi_jump_via_inlinethunksi (operands[0], - operands[1], - label_ref, - force_reg (Pmode, label_ref))); - } + label_ref)); + else + emit_jump_insn (gen_casesi_jump_via_inlinethunkdi (operands[0], + operands[1], + label_ref, + force_reg (Pmode, label_ref))); DONE; } }) @@ -10824,8 +9828,8 @@ (set_attr "type" "branch") (set_attr "atype" "agen")]) -(define_insn "casesi_jump_via_thunk_z10" - [(set (pc) (match_operand:P 0 "register_operand" "a")) +(define_insn "casesi_jump_via_thunkdi_z10" + [(set (pc) (match_operand:DI 0 "register_operand" "a")) (use (label_ref (match_operand 1 "" "")))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK && TARGET_CPU_Z10" @@ -10841,10 +9845,10 @@ (set_attr "type" "branch") (set_attr "atype" "agen")]) -(define_insn "casesi_jump_via_thunk" - [(set (pc) (match_operand:P 0 "register_operand" "a")) +(define_insn "casesi_jump_via_thunkdi" + [(set (pc) (match_operand:DI 0 "register_operand" "a")) (use (label_ref (match_operand 1 "" ""))) - (clobber (reg:P INDIRECT_BRANCH_THUNK_REGNUM))] + (clobber (reg:DI INDIRECT_BRANCH_THUNK_REGNUM))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK && !TARGET_CPU_Z10" { @@ -10863,12 +9867,12 @@ ; The label_ref is wrapped into an if_then_else in order to hide it ; from mark_jump_label. Without this the label_ref would become the ; ONLY jump target of that jump breaking the control flow graph. -(define_insn "casesi_jump_via_inlinethunk_z10" - [(unspec [(if_then_else (match_operand:P 2 "larl_operand" "X") +(define_insn "casesi_jump_via_inlinethunkdi_z10" + [(unspec [(if_then_else (match_operand:DI 2 "larl_operand" "X") (const_int 0) (const_int 0)) (const_int 0)] UNSPEC_EXECUTE_JUMP) - (set (pc) (match_operand:P 0 "register_operand" "a")) + (set (pc) (match_operand:DI 0 "register_operand" "a")) (use (label_ref (match_operand 1 "" "")))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK && TARGET_CPU_Z10" @@ -10880,12 +9884,12 @@ (set_attr "type" "cs") (set_attr "length" "10")]) -(define_insn "casesi_jump_via_inlinethunk" - [(unspec [(if_then_else (match_operand:P 2 "larl_operand" "X") +(define_insn "casesi_jump_via_inlinethunkdi" + [(unspec [(if_then_else (match_operand:DI 2 "larl_operand" "X") (const_int 0) (const_int 0)) - (match_operand:P 3 "register_operand" "a")] UNSPEC_EXECUTE_JUMP) - (set (pc) (match_operand:P 0 "register_operand" "a")) + (match_operand:DI 3 "register_operand" "a")] UNSPEC_EXECUTE_JUMP) + (set (pc) (match_operand:DI 0 "register_operand" "a")) (use (label_ref (match_operand 1 "" "")))] "TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK && !TARGET_CPU_Z10" @@ -10919,10 +9923,7 @@ if (GET_CODE (index) != REG) index = copy_to_mode_reg (Pmode, index); - if (TARGET_64BIT) - emit_insn (gen_ashldi3 (index, index, GEN_INT (3))); - else - emit_insn (gen_ashlsi3 (index, index, const2_rtx)); + emit_insn (gen_ashldi3 (index, index, GEN_INT (3))); emit_move_insn (base, gen_rtx_LABEL_REF (Pmode, operands[3])); @@ -11167,10 +10168,10 @@ (set_attr "atype" "agen") (set_attr "z196prop" "z196_cracked")]) -(define_insn "*basr_via_thunk_z10" - [(call (mem:QI (match_operand:P 0 "register_operand" "a")) +(define_insn "*basr_via_thunkdi_z10" + [(call (mem:QI (match_operand:DI 0 "register_operand" "a")) (match_operand 1 "const_int_operand" "n")) - (clobber (match_operand:P 2 "register_operand" "=&r"))] + (clobber (match_operand:DI 2 "register_operand" "=&r"))] "TARGET_INDIRECT_BRANCH_NOBP_CALL && TARGET_CPU_Z10 && !SIBLING_CALL_P (insn)" @@ -11187,11 +10188,11 @@ (set_attr "atype" "agen") (set_attr "z196prop" "z196_cracked")]) -(define_insn "*basr_via_thunk" - [(call (mem:QI (match_operand:P 0 "register_operand" "a")) +(define_insn "*basr_via_thunkdi" + [(call (mem:QI (match_operand:DI 0 "register_operand" "a")) (match_operand 1 "const_int_operand" "n")) - (clobber (match_operand:P 2 "register_operand" "=&r")) - (clobber (reg:P INDIRECT_BRANCH_THUNK_REGNUM))] + (clobber (match_operand:DI 2 "register_operand" "=&r")) + (clobber (reg:DI INDIRECT_BRANCH_THUNK_REGNUM))] "TARGET_INDIRECT_BRANCH_NOBP_CALL && !TARGET_CPU_Z10 && !SIBLING_CALL_P (insn)" @@ -11302,7 +10303,7 @@ (call (mem:QI (match_operand 1 "register_operand" "a")) (match_operand 2 "const_int_operand" "n"))) (clobber (match_operand 3 "register_operand" "=&r")) - (clobber (reg:P INDIRECT_BRANCH_THUNK_REGNUM))] + (clobber (reg:DI INDIRECT_BRANCH_THUNK_REGNUM))] "TARGET_INDIRECT_BRANCH_NOBP_CALL && !TARGET_CPU_Z10 && !SIBLING_CALL_P (insn) @@ -11324,15 +10325,15 @@ ;;- Thread-local storage support. ;; -(define_expand "@get_thread_pointer" - [(set (match_operand:P 0 "nonimmediate_operand" "") - (unspec:P [(reg:P TP_REGNUM)] UNSPEC_GET_TP))] +(define_expand "get_thread_pointerdi" + [(set (match_operand:DI 0 "nonimmediate_operand" "") + (unspec:DI [(reg:DI TP_REGNUM)] UNSPEC_GET_TP))] "" "") -(define_expand "set_thread_pointer" - [(set (reg:P TP_REGNUM) (match_operand:P 0 "nonimmediate_operand" "")) - (set (reg:P TP_REGNUM) (unspec_volatile:P [(reg:P TP_REGNUM)] UNSPECV_SET_TP))] +(define_expand "set_thread_pointerdi" + [(set (reg:DI TP_REGNUM) (match_operand:DI 0 "nonimmediate_operand" "")) + (set (reg:DI TP_REGNUM) (unspec_volatile:DI [(reg:DI TP_REGNUM)] UNSPECV_SET_TP))] "" "") @@ -11348,25 +10349,11 @@ (unspec:DI [(match_operand:DI 1 "memory_operand" "T") (match_operand:DI 2 "" "")] UNSPEC_TLS_LOAD))] - "TARGET_64BIT" + "" "lg\t%0,%1%J2" [(set_attr "op_type" "RXE") (set_attr "z10prop" "z10_fwd_A3")]) -(define_insn "*tls_load_31" - [(set (match_operand:SI 0 "register_operand" "=d,d") - (unspec:SI [(match_operand:SI 1 "memory_operand" "R,T") - (match_operand:SI 2 "" "")] - UNSPEC_TLS_LOAD))] - "!TARGET_64BIT" - "@ - l\t%0,%1%J2 - ly\t%0,%1%J2" - [(set_attr "op_type" "RX,RXY") - (set_attr "type" "load") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "z10prop" "z10_fwd_A3,z10_fwd_A3")]) - (define_insn "*bras_tls" [(set (match_operand 0 "" "") (call (mem:QI (match_operand 1 "bras_sym_operand" "X")) @@ -11474,33 +10461,16 @@ if (mode == TImode) emit_insn (gen_atomic_loadti_1 (operands[0], operands[1])); - else if (mode == DImode && !TARGET_ZARCH) - emit_insn (gen_atomic_loaddi_1 (operands[0], operands[1])); else emit_move_insn (operands[0], operands[1]); DONE; }) -; Different from movdi_31 in that we want no splitters. -(define_insn "atomic_loaddi_1" - [(set (match_operand:DI 0 "register_operand" "=d,d,!*f,!*f") - (unspec:DI [(match_operand:DI 1 "memory_operand" "Q,S,R,T")] - UNSPEC_MOVA))] - "!TARGET_ZARCH" - "@ - lm\t%0,%M0,%S1 - lmy\t%0,%M0,%S1 - ld\t%0,%1 - ldy\t%0,%1" - [(set_attr "op_type" "RS,RSY,RS,RSY") - (set_attr "cpu_facility" "*,longdisp,*,longdisp") - (set_attr "type" "lm,lm,floaddf,floaddf")]) - (define_insn "atomic_loadti_1" [(set (match_operand:TI 0 "register_operand" "=r") (unspec:TI [(match_operand:TI 1 "memory_operand" "T")] UNSPEC_MOVA))] - "TARGET_ZARCH" + "" "lpq\t%0,%1" [(set_attr "op_type" "RXY") (set_attr "type" "other")]) @@ -11519,8 +10489,6 @@ if (mode == TImode) emit_insn (gen_atomic_storeti_1 (operands[0], operands[1])); - else if (mode == DImode && !TARGET_ZARCH) - emit_insn (gen_atomic_storedi_1 (operands[0], operands[1])); else emit_move_insn (operands[0], operands[1]); if (is_mm_seq_cst (model)) @@ -11528,26 +10496,11 @@ DONE; }) -; Different from movdi_31 in that we want no splitters. -(define_insn "atomic_storedi_1" - [(set (match_operand:DI 0 "memory_operand" "=Q,S,R,T") - (unspec:DI [(match_operand:DI 1 "register_operand" "d,d,!*f,!*f")] - UNSPEC_MOVA))] - "!TARGET_ZARCH" - "@ - stm\t%1,%N1,%S0 - stmy\t%1,%N1,%S0 - std %1,%0 - stdy %1,%0" - [(set_attr "op_type" "RS,RSY,RS,RSY") - (set_attr "cpu_facility" "*,longdisp,*,longdisp") - (set_attr "type" "stm,stm,fstoredf,fstoredf")]) - (define_insn "atomic_storeti_1" [(set (match_operand:TI 0 "memory_operand" "=T") (unspec:TI [(match_operand:TI 1 "register_operand" "r")] UNSPEC_MOVA))] - "TARGET_ZARCH" + "" "stpq\t%1,%0" [(set_attr "op_type" "RXY") (set_attr "type" "other")]) @@ -11577,13 +10530,13 @@ (define_expand "atomic_compare_and_swap_internal" [(parallel - [(set (match_operand:DGPR 0 "register_operand") - (match_operand:DGPR 1 "s_operand")) + [(set (match_operand:TDSI 0 "register_operand") + (match_operand:TDSI 1 "s_operand")) (set (match_dup 1) - (unspec_volatile:DGPR + (unspec_volatile:TDSI [(match_dup 1) - (match_operand:DGPR 2 "register_operand") - (match_operand:DGPR 3 "register_operand")] + (match_operand:TDSI 2 "register_operand") + (match_operand:TDSI 3 "register_operand")] UNSPECV_CAS)) (set (match_operand 4 "cc_reg_operand") (match_dup 5))])] @@ -11606,33 +10559,11 @@ UNSPECV_CAS)) (set (reg CC_REGNUM) (compare (match_dup 1) (match_dup 2)))] - "TARGET_ZARCH - && s390_match_ccmode (insn, CCZ1mode)" + "s390_match_ccmode (insn, CCZ1mode)" "csg\t%0,%3,%S1" [(set_attr "op_type" "RSY") (set_attr "type" "sem")]) -; cds, cdsy -(define_insn "*atomic_compare_and_swapdi_2" - [(set (match_operand:DI 0 "register_operand" "=r,r") - (match_operand:DI 1 "nonsym_memory_operand" "+Q,S")) - (set (match_dup 1) - (unspec_volatile:DI - [(match_dup 1) - (match_operand:DI 2 "register_operand" "0,0") - (match_operand:DI 3 "register_operand" "r,r")] - UNSPECV_CAS)) - (set (reg CC_REGNUM) - (compare (match_dup 1) (match_dup 2)))] - "!TARGET_ZARCH - && s390_match_ccmode (insn, CCZ1mode)" - "@ - cds\t%0,%3,%S1 - cdsy\t%0,%3,%S1" - [(set_attr "op_type" "RS,RSY") - (set_attr "cpu_facility" "*,longdisp") - (set_attr "type" "sem")]) - ; cs, csy (define_insn "*atomic_compare_and_swapsi_3" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -11660,10 +10591,10 @@ ; z196 load and add, xor, or and and instructions (define_expand "atomic_fetch_" - [(match_operand:GPR 0 "register_operand") ;; val out - (ATOMIC_Z196:GPR - (match_operand:GPR 1 "memory_operand") ;; memory - (match_operand:GPR 2 "register_operand")) ;; val in + [(match_operand:DSI 0 "register_operand") ;; val out + (ATOMIC_Z196:DSI + (match_operand:DSI 1 "memory_operand") ;; memory + (match_operand:DSI 2 "register_operand")) ;; val in (match_operand:SI 3 "const_int_operand")] ;; model "TARGET_Z196" { @@ -11677,12 +10608,12 @@ ; lan, lang, lao, laog, lax, laxg, laa, laag (define_insn "atomic_fetch__iaf" - [(set (match_operand:GPR 0 "register_operand" "=d") - (match_operand:GPR 1 "memory_operand" "+S")) + [(set (match_operand:DSI 0 "register_operand" "=d") + (match_operand:DSI 1 "memory_operand" "+S")) (set (match_dup 1) - (unspec_volatile:GPR - [(ATOMIC_Z196:GPR (match_dup 1) - (match_operand:GPR 2 "general_operand" "d"))] + (unspec_volatile:DSI + [(ATOMIC_Z196:DSI (match_dup 1) + (match_operand:DSI 2 "general_operand" "d"))] UNSPECV_ATOMIC_OP)) (clobber (reg:CC CC_REGNUM))] "TARGET_Z196" @@ -11747,10 +10678,8 @@ if (mode == HImode || mode == QImode) s390_expand_atomic (mode, SET, operands[0], operands[1], operands[2], false); - else if (mode == SImode || TARGET_ZARCH) - s390_expand_atomic_exchange_tdsi (operands[0], operands[1], operands[2]); else - FAIL; + s390_expand_atomic_exchange_tdsi (operands[0], operands[1], operands[2]); DONE; }) @@ -11782,10 +10711,10 @@ DONE; }) -(define_expand "@probe_stack2" +(define_expand "probe_stack2di" [(set (reg:CCZ CC_REGNUM) - (compare:CCZ (reg:W 0) - (match_operand:W 0 "memory_operand"))) + (compare:CCZ (reg:DI 0) + (match_operand:DI 0 "memory_operand"))) (unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE)] "") @@ -11793,7 +10722,7 @@ [(match_operand 0 "memory_operand")] "" { - emit_insn (gen_probe_stack2 (word_mode, operands[0])); + emit_insn (gen_probe_stack2di (operands[0])); DONE; }) @@ -12091,17 +11020,14 @@ if (!TARGET_CPU_Z10 && TARGET_INDIRECT_BRANCH_NOBP_RET_OPTION) { - if (TARGET_64BIT) - emit_jump_insn (gen_returndi_prez10 (operands[0])); - else - emit_jump_insn (gen_returnsi_prez10 (operands[0])); + emit_jump_insn (gen_returndi_prez10 (operands[0])); DONE; } }) -(define_insn "*return" +(define_insn "*returndi" [(return) - (use (match_operand:P 0 "register_operand" "a"))] + (use (match_operand:DI 0 "register_operand" "a"))] "TARGET_CPU_Z10 || !TARGET_INDIRECT_BRANCH_NOBP_RET_OPTION" { if (TARGET_INDIRECT_BRANCH_NOBP_RET) @@ -12126,10 +11052,10 @@ (set_attr "type" "jsr") (set_attr "atype" "agen")]) -(define_insn "return_prez10" +(define_insn "returndi_prez10" [(return) - (use (match_operand:P 0 "register_operand" "a")) - (clobber (reg:P INDIRECT_BRANCH_THUNK_REGNUM))] + (use (match_operand:DI 0 "register_operand" "a")) + (clobber (reg:DI INDIRECT_BRANCH_THUNK_REGNUM))] "!TARGET_CPU_Z10 && TARGET_INDIRECT_BRANCH_NOBP_RET_OPTION" { if (TARGET_INDIRECT_BRANCH_NOBP_RET) @@ -12161,7 +11087,7 @@ (define_expand "ptr_extend" [(set (match_operand:DI 0 "register_operand" "=r") (match_operand:SI 1 "register_operand" "r"))] - "TARGET_64BIT" + "TARGET_TPF" { emit_insn (gen_anddi3 (operands[0], gen_lowpart (DImode, operands[1]), @@ -12184,9 +11110,9 @@ ; Stack Protector Patterns ; -(define_insn "stack_protect_global_guard_addr" - [(set (match_operand:P 0 "register_operand" "=d") - (unspec_volatile:P [(const_int 0)] UNSPECV_SP_GLOBAL_GUARD_ADDR))] +(define_insn "stack_protect_global_guard_addrdi" + [(set (match_operand:DI 0 "register_operand" "=d") + (unspec_volatile:DI [(const_int 0)] UNSPECV_SP_GLOBAL_GUARD_ADDR))] "" { if (flag_s390_stack_protector_guard_record) @@ -12194,37 +11120,29 @@ if (flag_pic) { if (TARGET_Z10) - output_asm_insn ("lrl\t%0,__stack_chk_guard@GOTENT", operands); + output_asm_insn ("lgrl\t%0,__stack_chk_guard@GOTENT", operands); else { output_asm_insn ("larl\t%0,__stack_chk_guard@GOTENT", operands); - output_asm_insn ("l\t%0,0(%0)", operands); + output_asm_insn ("lg\t%0,0(%0)", operands); } } else output_asm_insn ("larl\t%0,__stack_chk_guard", operands); if (flag_s390_stack_protector_guard_record) fprintf (asm_out_file, "\t.section __stack_protector_loc,\\"a\\",@progbits\n" - "\t.%s 1b\n" - "\t.previous\n", TARGET_64BIT ? "quad" : "long"); + "\t.quad 1b\n" + "\t.previous\n"); return ""; } [(set (attr "mnemonic") - (cond [(match_test "flag_pic && TARGET_Z10") (const_string "lrl") + (cond [(match_test "flag_pic && TARGET_Z10") (const_string "lgrl") (match_test "flag_pic && !TARGET_Z10") (const_string "*")] (const_string "larl")))]) -; Insns stack_protect_get_tp{si,di} are similar to *get_tp_{31,64} but still -; distinct in the sense that they force recomputation of the thread pointer -; instead of potentially reloading it from stack. - -(define_insn_and_split "stack_protect_get_tpsi" - [(set (match_operand:SI 0 "register_operand" "=d") - (unspec_volatile:SI [(const_int 0)] UNSPECV_SP_GET_TP))] - "" - "#" - "&& reload_completed" - [(set (match_dup 0) (reg:SI AR0_REGNUM))]) +; Insn stack_protect_get_tpdi is similar to *get_tp_64 but still distinct in +; the sense that it forces recomputation of the thread pointer instead of +; potentially reloading it from stack. (define_insn_and_split "stack_protect_get_tpdi" [(set (match_operand:DI 0 "register_operand" "=d") @@ -12245,36 +11163,27 @@ if (TARGET_SP_GLOBAL_GUARD) { rtx addr = gen_reg_rtx (Pmode); - if (TARGET_64BIT) - emit_insn (gen_stack_protect_global_guard_addrdi (addr)); - else - emit_insn (gen_stack_protect_global_guard_addrsi (addr)); + emit_insn (gen_stack_protect_global_guard_addrdi (addr)); operands[1] = gen_rtx_MEM (Pmode, addr); } else { #ifdef TARGET_THREAD_SSP_OFFSET rtx tp = gen_reg_rtx (Pmode); - if (TARGET_64BIT) - emit_insn (gen_stack_protect_get_tpdi (tp)); - else - emit_insn (gen_stack_protect_get_tpsi (tp)); + emit_insn (gen_stack_protect_get_tpdi (tp)); operands[1] = gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET))); #endif } - if (TARGET_64BIT) - emit_insn (gen_stack_protect_setdi (operands[0], operands[1])); - else - emit_insn (gen_stack_protect_setsi (operands[0], operands[1])); + emit_insn (gen_stack_protect_setdi (operands[0], operands[1])); DONE; }) -(define_insn "stack_protect_set" - [(set (match_operand:DSI 0 "memory_operand" "=Q") - (unspec:DSI [(match_operand:DSI 1 "memory_operand" "Q")] UNSPEC_SP_SET))] +(define_insn "stack_protect_setdi" + [(set (match_operand:DI 0 "memory_operand" "=Q") + (unspec:DI [(match_operand:DI 1 "memory_operand" "Q")] UNSPEC_SP_SET))] "" "mvc\t%O0(%G0,%R0),%S1" [(set_attr "op_type" "SS")]) @@ -12290,29 +11199,20 @@ if (TARGET_SP_GLOBAL_GUARD) { rtx addr = gen_reg_rtx (Pmode); - if (TARGET_64BIT) - emit_insn (gen_stack_protect_global_guard_addrdi (addr)); - else - emit_insn (gen_stack_protect_global_guard_addrsi (addr)); + emit_insn (gen_stack_protect_global_guard_addrdi (addr)); operands[1] = gen_rtx_MEM (Pmode, addr); } else { #ifdef TARGET_THREAD_SSP_OFFSET rtx tp = gen_reg_rtx (Pmode); - if (TARGET_64BIT) - emit_insn (gen_stack_protect_get_tpdi (tp)); - else - emit_insn (gen_stack_protect_get_tpsi (tp)); + emit_insn (gen_stack_protect_get_tpdi (tp)); operands[1] = gen_rtx_MEM (Pmode, gen_rtx_PLUS (Pmode, tp, GEN_INT (TARGET_THREAD_SSP_OFFSET))); #endif } - if (TARGET_64BIT) - emit_insn (gen_stack_protect_testdi (operands[0], operands[1])); - else - emit_insn (gen_stack_protect_testsi (operands[0], operands[1])); + emit_insn (gen_stack_protect_testdi (operands[0], operands[1])); cc_reg = gen_rtx_REG (CCZmode, CC_REGNUM); test = gen_rtx_EQ (VOIDmode, cc_reg, const0_rtx); @@ -12320,10 +11220,10 @@ DONE; }) -(define_insn "stack_protect_test" +(define_insn "stack_protect_testdi" [(set (reg:CCZ CC_REGNUM) - (unspec:CCZ [(match_operand:DSI 0 "memory_operand" "Q") - (match_operand:DSI 1 "memory_operand" "Q")] UNSPEC_SP_TEST))] + (unspec:CCZ [(match_operand:DI 0 "memory_operand" "Q") + (match_operand:DI 1 "memory_operand" "Q")] UNSPEC_SP_TEST))] "" "clc\t%O0(%G0,%R0),%S1" [(set_attr "op_type" "SS")]) @@ -12331,10 +11231,10 @@ ; This is used in s390_emit_prologue in order to prevent insns ; adjusting the stack pointer to be moved over insns writing stack ; slots using a copy of the stack pointer in a different register. -(define_insn "@stack_tie" +(define_insn "stack_tiedi" [(set (match_operand:BLK 0 "memory_operand" "+m") (unspec:BLK [(match_dup 0) - (match_operand:P 1 "register_operand" "r")] UNSPEC_TIE))] + (match_operand:DI 1 "register_operand" "r")] UNSPEC_TIE))] "" "" [(set_attr "length" "0")]) @@ -12389,8 +11289,8 @@ ; may overlap. ; lrvr, lrv, strv, lrvgr, lrvg, strvg (define_insn "bswap2" - [(set (match_operand:GPR 0 "nonimmediate_operand" "=d,d,T") - (bswap:GPR (match_operand:GPR 1 "nonimmediate_operand" " d,T,d")))] + [(set (match_operand:DSI 0 "nonimmediate_operand" "=d,d,T") + (bswap:DSI (match_operand:DSI 1 "nonimmediate_operand" " d,T,d")))] "" "@ lrvr\t%0,%1 @@ -12924,15 +11824,12 @@ "" { /* Offset from thread pointer to __private_ss. */ - int psso = TARGET_64BIT ? 0x38 : 0x20; + int psso = 0x38; rtx tp = s390_get_thread_pointer (); rtx guard = gen_rtx_MEM (Pmode, plus_constant (Pmode, tp, psso)); rtx reg = gen_reg_rtx (Pmode); rtx cc; - if (TARGET_64BIT) - emit_insn (gen_subdi3 (reg, stack_pointer_rtx, operands[0])); - else - emit_insn (gen_subsi3 (reg, stack_pointer_rtx, operands[0])); + emit_insn (gen_subdi3 (reg, stack_pointer_rtx, operands[0])); cc = s390_emit_compare (VOIDmode, GT, reg, guard); s390_emit_jump (operands[1], cc); @@ -12953,11 +11850,11 @@ ; allow the edge to the BB with the call done label to be ; redirected both need to make use of the same label_ref. -(define_insn "@split_stack_call" +(define_insn "split_stack_calldi" [(set (pc) (label_ref (match_operand 2 "" ""))) ; call done label - (set (reg:P 1) (unspec_volatile:P [(match_operand 0 "bras_sym_operand" "X") - (reg:P 1)] - UNSPECV_SPLIT_STACK_CALL)) + (set (reg:DI 1) (unspec_volatile:DI [(match_operand 0 "bras_sym_operand" "X") + (reg:DI 1)] + UNSPECV_SPLIT_STACK_CALL)) (use (label_ref (match_operand 1 "" "X"))) ; parm block label (use (match_operand 3 "const_int_operand" "X")) ; frame size (use (match_operand 4 "const_int_operand" "X"))] ; arg size @@ -12971,14 +11868,14 @@ ; As above but with a conditional jump -(define_insn "@split_stack_cond_call" +(define_insn "split_stack_cond_calldi" [(set (pc) (if_then_else (match_operand 5 "" "") ; condition (label_ref (match_operand 2 "" "")) ; call done label (pc))) - (set (reg:P 1) (unspec_volatile:P [(match_operand 0 "bras_sym_operand" "X") - (reg:P 1)] + (set (reg:DI 1) (unspec_volatile:DI [(match_operand 0 "bras_sym_operand" "X") + (reg:DI 1)] UNSPECV_SPLIT_STACK_CALL)) (use (label_ref (match_operand 1 "" "X"))) ; parm block label (use (match_operand 3 "const_int_operand" "X")) ; frame size diff --git a/gcc/config/s390/s390.opt b/gcc/config/s390/s390.opt index 93bd55a07e9..687bad5ec2d 100644 --- a/gcc/config/s390/s390.opt +++ b/gcc/config/s390/s390.opt @@ -44,11 +44,13 @@ Variable long s390_cost_pointer m31 -Target RejectNegative Negative(m64) InverseMask(64BIT) -31 bit ABI. +Target Var(flag_m31) Undocumented +; After removing -m31, -m64 is the only supported ABI. +; Therefore, specifying -m64 doesn't have any additional effect. +; However, keep it for backwards compatibility. m64 -Target RejectNegative Negative(m31) Mask(64BIT) +Target Ignore 64 bit ABI. march= @@ -139,7 +141,7 @@ Target Mask(DEBUG_ARG) Save Additional debug prints. mesa -Target RejectNegative Negative(mzarch) InverseMask(ZARCH) +Target Var(flag_mesa) Undocumented ESA/390 architecture. mhard-dfp @@ -243,8 +245,11 @@ mwarn-framesize= Target RejectNegative Joined UInteger Var(s390_warn_framesize) Save Warn if a single function's framesize exceeds the given framesize. +; After removing ESA/390 support, z/Architecture is the only supported +; cpu mode. Therefore, specifying -mzarch doesn't have any additional +; effect. However, keep it for backwards compatibility. mzarch -Target RejectNegative Negative(mesa) Mask(ZARCH) +Target Ignore z/Architecture. ; This option was added to fix some testsuite failures. diff --git a/gcc/config/s390/s390.opt.urls b/gcc/config/s390/s390.opt.urls index 77dccc463aa..1e214feb3a5 100644 --- a/gcc/config/s390/s390.opt.urls +++ b/gcc/config/s390/s390.opt.urls @@ -1,8 +1,5 @@ ; Autogenerated by regenerate-opt-urls.py from gcc/config/s390/s390.opt and generated HTML -m31 -UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-m31) - m64 UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-m64-2) @@ -15,9 +12,6 @@ UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-mbackchain) mdebug UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-mdebug-1) -mesa -UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-mesa) - mhard-dfp UrlSuffix(gcc/S_002f390-and-zSeries-Options.html#index-mhard-dfp-1) diff --git a/gcc/config/s390/s390x.h b/gcc/config/s390/s390x.h deleted file mode 100644 index 1c25d2d5c2f..00000000000 --- a/gcc/config/s390/s390x.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Definitions of target machine for IBM zSeries 64-bit - Copyright (C) 2002-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -. */ - -#ifndef _S390X_H -#define _S390X_H - -#define DEFAULT_TARGET_64BIT - -#endif diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64 index cc6ab367072..1e5d6789a2c 100644 --- a/gcc/config/s390/t-linux64 +++ b/gcc/config/s390/t-linux64 @@ -2,10 +2,12 @@ # are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to # /lib and /usr/lib, while other distributions install libraries into /lib64 # and /usr/lib64. The LSB does not enforce the use of /lib64 and /usr/lib64, -# it doesn't tell anything about the 32bit libraries on those systems. Set -# MULTILIB_OSDIRNAMES according to what is found on the target. +# it doesn't tell anything about the 32bit libraries on those systems. -MULTILIB_OPTIONS = m64/m31 -MULTILIB_DIRNAMES = 64 32 +# After the removal of -m31 there is only one ABI left which means multilib +# support is not needed anymore. Still maintain the directory structure for +# 64-bit s390x which means library directories are named lib64. + +MULTILIB_OPTIONS = m64 +MULTILIB_DIRNAMES = 64 MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) -MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) diff --git a/gcc/config/s390/tpf.h b/gcc/config/s390/tpf.h index ca7440d5563..149ce703976 100644 --- a/gcc/config/s390/tpf.h +++ b/gcc/config/s390/tpf.h @@ -41,6 +41,8 @@ along with GCC; see the file COPYING3. If not see #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 +/* This is -1 for "pointer mode" extend. See ptr_extend in s390.md. */ +#define POINTERS_EXTEND_UNSIGNED -1 /* TPF OS specific stack-pointer offset. */ #undef STACK_POINTER_OFFSET @@ -49,8 +51,7 @@ along with GCC; see the file COPYING3. If not see /* When building for TPF, set a generic default target that is 64 bits. Also enable TPF profiling support and the standard backchain by default. */ #undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_TPF_PROFILING | MASK_64BIT | MASK_ZARCH \ - | MASK_HARD_DFP | MASK_BACKCHAIN) +#define TARGET_DEFAULT (MASK_TPF_PROFILING | MASK_HARD_DFP | MASK_BACKCHAIN) /* Exception handling. */ @@ -93,7 +94,7 @@ along with GCC; see the file COPYING3. If not see make it work with older binutils. */ #undef ASM_SPEC #define ASM_SPEC \ - "%{m31&m64}%{mesa&mzarch}%{march=z*}" \ + "%{march=z*}" \ "%{march=arch5:-march=z900}" \ "%{march=arch6:-march=z990}" \ "%{march=arch7:-march=z9-ec}" \ diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index f0be6f10c1a..b65c52a95f9 100644 --- a/gcc/config/s390/vector.md +++ b/gcc/config/s390/vector.md @@ -358,7 +358,7 @@ (define_split [(set (match_operand:V_128 0 "register_operand" "") (match_operand:V_128 1 "memory_operand" ""))] - "TARGET_ZARCH && reload_completed + "reload_completed && !VECTOR_REG_P (operands[0]) && !s_operand (operands[1], VOIDmode)" [(set (match_dup 0) (match_dup 1))] @@ -473,7 +473,7 @@ "=f,f,f,R,T,v,v,d,v,R, f, v, v, v, v, v, Q, Q, d, d,f,d,d,d,d,T,b") (match_operand:V_64 1 "general_operand" " f,R,T,f,f,v,d,v,R,v,j00,j00,jm1,jyy,jxx,jzz,j00,jm1,j00,jm1,d,f,b,d,T,d,d"))] - "TARGET_ZARCH" + "" "@ ldr\t%0,%1 ld\t%0,%1 @@ -3183,7 +3183,7 @@ ; operand in a VR, therefore load it into a FPR pair first. (define_expand "floatunstf2_vr" [(set (match_dup 2) - (unsigned_float:FPRX2 (match_operand:GPR 1 "register_operand" ""))) + (unsigned_float:FPRX2 (match_operand:DSI 1 "register_operand" ""))) (set (match_operand:TF 0 "register_operand" "") (subreg:TF (match_dup 2) 0))] "TARGET_VXE" @@ -3193,7 +3193,7 @@ (define_expand "floatunstf2" [(match_operand:TF 0 "register_operand" "") - (match_operand:GPR 1 "register_operand" "")] + (match_operand:DSI 1 "register_operand" "")] "HAVE_TF (floatunstf2)" { EXPAND_TF (floatunstf2, 2); }) @@ -3214,9 +3214,9 @@ (define_expand "fix_trunctf2_vr" [(set (match_dup 2) (unspec:FPRX2 [(match_operand:TF 1 "register_operand")] UNSPEC_TF_TO_FPRX2)) - (parallel [(set (match_operand:GPR 0 "register_operand" "") - (fix:GPR (match_dup 2))) - (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) + (parallel [(set (match_operand:DSI 0 "register_operand" "") + (fix:DSI (match_dup 2))) + (unspec:DSI [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "TARGET_VXE" { @@ -3224,7 +3224,7 @@ }) (define_expand "fix_trunctf2" - [(match_operand:GPR 0 "register_operand" "") + [(match_operand:DSI 0 "register_operand" "") (match_operand:TF 1 "register_operand" "")] "HAVE_TF (fix_trunctf2)" { EXPAND_TF (fix_trunctf2, 2); }) @@ -3246,9 +3246,9 @@ (define_expand "fixuns_trunctf2_vr" [(set (match_dup 2) (unspec:FPRX2 [(match_operand:TF 1 "register_operand")] UNSPEC_TF_TO_FPRX2)) - (parallel [(set (match_operand:GPR 0 "register_operand" "") - (unsigned_fix:GPR (match_dup 2))) - (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) + (parallel [(set (match_operand:DSI 0 "register_operand" "") + (unsigned_fix:DSI (match_dup 2))) + (unspec:DSI [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND) (clobber (reg:CC CC_REGNUM))])] "TARGET_VXE" { @@ -3256,7 +3256,7 @@ }) (define_expand "fixuns_trunctf2" - [(match_operand:GPR 0 "register_operand" "") + [(match_operand:DSI 0 "register_operand" "") (match_operand:TF 1 "register_operand" "")] "HAVE_TF (fixuns_trunctf2)" { EXPAND_TF (fixuns_trunctf2, 2); }) @@ -3566,7 +3566,7 @@ (match_operand:QI 3 "register_operand") (match_operand:QI 4 "vll_bias_operand") ] - "TARGET_VX && TARGET_64BIT" + "TARGET_VX" { rtx mem = adjust_address (operands[1], BLKmode, 0); @@ -3582,7 +3582,7 @@ (match_operand:QI 2 "register_operand") (match_operand:QI 3 "vll_bias_operand") ] - "TARGET_VX && TARGET_64BIT" + "TARGET_VX" { rtx mem = adjust_address (operands[0], BLKmode, 0); diff --git a/gcc/config/s390/vx-builtins.md b/gcc/config/s390/vx-builtins.md index a5cac359c1c..6d06f1a7915 100644 --- a/gcc/config/s390/vx-builtins.md +++ b/gcc/config/s390/vx-builtins.md @@ -435,8 +435,6 @@ ; Vector scatter element ; vscef, vsceg - -; A 64 bit target address generated from 32 bit elements (define_insn "vec_scatter_element_DI" [(set (mem: (plus:DI (zero_extend:DI @@ -447,27 +445,10 @@ (vec_select: (match_operand:V_HW_4 0 "register_operand" "v") (parallel [(match_dup 3)])))] - "TARGET_VX && TARGET_64BIT && UINTVAL (operands[3]) < 4" + "TARGET_VX && UINTVAL (operands[3]) < 4" "vscef\t%v0,%O2(%v1,%R2),%3" [(set_attr "op_type" "VRV")]) -; A 31 bit target address is generated from 64 bit elements -; vsceg -(define_insn "vec_scatter_element_SI" - [(set (mem: - (plus:SI (subreg:SI - (vec_select: - (match_operand: 1 "register_operand" "v") - (parallel [(match_operand:QI 3 "const_mask_operand" "C")])) 4) - (match_operand:SI 2 "address_operand" "ZQ"))) - (vec_select: - (match_operand:V_HW_2 0 "register_operand" "v") - (parallel [(match_dup 3)])))] - "TARGET_VX && !TARGET_64BIT && UINTVAL (operands[3]) < GET_MODE_NUNITS (mode)" - "vsce\t%v0,%O2(%v1,%R2),%3" - [(set_attr "op_type" "VRV")]) - -; Element size and target address size is the same ; vscef, vsceg (define_insn "vec_scatter_element_" [(set (mem: @@ -483,33 +464,6 @@ "vsce\t%v0,%O2(%v1,%R2),%3" [(set_attr "op_type" "VRV")]) -; Depending on the address size we have to expand a different pattern. -; This however cannot be represented in s390-builtins.def so we do the -; multiplexing here in the expander. -(define_expand "vec_scatter_element" - [(match_operand:V_HW_32_64 0 "register_operand" "") - (match_operand: 1 "register_operand" "") - (match_operand 2 "address_operand" "") - (match_operand:QI 3 "const_mask_operand" "")] - "TARGET_VX" -{ - if (TARGET_64BIT) - { - PUT_MODE (operands[2], DImode); - emit_insn ( - gen_vec_scatter_element_DI (operands[0], operands[1], - operands[2], operands[3])); - } - else - { - PUT_MODE (operands[2], SImode); - emit_insn ( - gen_vec_scatter_element_SI (operands[0], operands[1], - operands[2], operands[3])); - } - DONE; -}) - ; Vector select diff --git a/gcc/configure b/gcc/configure index ceb51cb63dc..cba5a9ecbd6 100755 --- a/gcc/configure +++ b/gcc/configure @@ -28307,23 +28307,6 @@ x: .word 2 la.tls.gd a0,x call __tls_get_addr' ;; - s390-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - .long foo@TLSGD - .long foo@TLSLDM - .long foo@DTPOFF - .long foo@NTPOFF - .long foo@GOTNTPOFF - .long foo@INDNTPOFF - l %r1,foo@GOTNTPOFF(%r12) - l %r1,0(%r1):tls_load:foo - bas %r14,0(%r1,%r13):tls_gdcall:foo - bas %r14,0(%r1,%r13):tls_ldcall:foo' - tls_as_opt="-m31" - ;; s390x-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -31568,7 +31551,7 @@ $as_echo "#define HAVE_AS_16B_ATOMIC 1" >>confdefs.h fi ;; - s390*-*-*) + s390x-*-*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .gnu_attribute support" >&5 $as_echo_n "checking assembler for .gnu_attribute support... " >&6; } if ${gcc_cv_as_s390_gnu_attribute+:} false; then : @@ -33701,7 +33684,7 @@ fi case "$target" in powerpc*-*-linux* | \ sparc*-*-linux* | \ - s390*-*-linux* | \ + s390x-*-linux* | \ alpha*-*-linux*) # Check whether --with-long-double-128 was given. @@ -33710,7 +33693,7 @@ if test "${with_long_double_128+set}" = set; then : else case "$target" in - s390*-*-linux-musl*) + s390x-*-linux-musl*) gcc_cv_target_ldbl128=yes ;; powerpc*-*-linux-musl*) @@ -35076,7 +35059,7 @@ fi case $target in - s390*-linux*) + s390x-linux*) if test x"$enable_s390_excess_float_precision" = xauto; then # Can we autodetect the behavior of the target libc? if test "$target" = "$host" -a "$host" = "$build"; then diff --git a/gcc/configure.ac b/gcc/configure.ac index ccd1020413a..6c560ceb90f 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4220,23 +4220,6 @@ x: .word 2 la.tls.gd a0,x call __tls_get_addr' ;; - s390-*-*) - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - .long foo@TLSGD - .long foo@TLSLDM - .long foo@DTPOFF - .long foo@NTPOFF - .long foo@GOTNTPOFF - .long foo@INDNTPOFF - l %r1,foo@GOTNTPOFF(%r12) - l %r1,0(%r1):tls_load:foo - bas %r14,0(%r1,%r13):tls_gdcall:foo - bas %r14,0(%r1,%r13):tls_ldcall:foo' - tls_as_opt="-m31" - ;; s390x-*-*) conftest_s=' .section ".tdata","awT",@progbits @@ -5545,7 +5528,7 @@ x: [AC_DEFINE(HAVE_AS_16B_ATOMIC, 1, [Define if your assembler supports LSX and SCQ for 16B atomic.])]) ;; - s390*-*-*) + s390x-*-*) gcc_GAS_CHECK_FEATURE([.gnu_attribute support], gcc_cv_as_s390_gnu_attribute,, [.gnu_attribute 8,1],, @@ -6952,14 +6935,14 @@ AS_IF([test x$gcc_cv_sys_sdt_h = xyes], [ case "$target" in powerpc*-*-linux* | \ sparc*-*-linux* | \ - s390*-*-linux* | \ + s390x-*-linux* | \ alpha*-*-linux*) AC_ARG_WITH(long-double-128, [AS_HELP_STRING([--with-long-double-128], [use 128-bit long double by default])], gcc_cv_target_ldbl128="$with_long_double_128", [ case "$target" in - s390*-*-linux-musl*) + s390x-*-linux-musl*) gcc_cv_target_ldbl128=yes ;; powerpc*-*-linux-musl*) @@ -7804,7 +7787,7 @@ AC_ARG_ENABLE(s390-excess-float-precision, [],[enable_s390_excess_float_precision=auto]) case $target in - s390*-linux*) + s390x-linux*) if test x"$enable_s390_excess_float_precision" = xauto; then # Can we autodetect the behavior of the target libc? if test "$target" = "$host" -a "$host" = "$build"; then diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index aab839952a0..31521091877 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -879,7 +879,7 @@ mips64orion, mips64vr, mipsel, mipsisa32, mipsisa32r2, mipsisa64, mipsisa64r2, mipsisa64r2el, mipsisa64sb1, mipsisa64sr71k, mipstx39, mmix, mn10300, moxie, msp430, nds32be, nds32le, nvptx, or1k, pdp11, powerpc, powerpc64, powerpc64le, powerpcle, pru, riscv32, riscv32be, riscv64, riscv64be, rl78, rx, -s390, s390x, sh, shle, sparc, sparc64, tic6x, v850, +s390x, sh, shle, sparc, sparc64, tic6x, v850, v850e, v850e1, vax, visium, x86_64, xstormy16, xtensa @end quotation @@ -2239,7 +2239,7 @@ you are building a bi-arch or multi-arch Binutils in a combined tree. On mips-linux, this will build a tri-arch compiler (ABI o32/n32/64), defaulted to o32. Currently, this option only affects sparc-linux, powerpc-linux, x86-linux, -mips-linux and s390-linux. +and mips-linux. @item --enable-default-pie Turn on @option{-fPIE} and @option{-pie} by default. @@ -2732,7 +2732,7 @@ target if target Binutils supported. @item --enable-s390-excess-float-precision @itemx --disable-s390-excess-float-precision -On s390(x) targets, enable treatment of float expressions with double precision +On s390x targets, enable treatment of float expressions with double precision when in standards-compliant mode (e.g., when @code{--std=c99} or @code{-fexcess-precision=standard} are given). diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 4cdea711842..606d666cd51 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1427,7 +1427,7 @@ See RS/6000 and PowerPC Options. -mlong-double-64 -mlong-double-128 -mbackchain -mpacked-stack -msmall-exec -mmvcle --m64 -m31 -mdebug -mesa -mzarch +-m64 -mdebug -mzarch -mhtm -mvx -mzvector -mtpf-trace -mtpf-trace-skip -mmain -mfused-madd -mno-fused-madd @@ -33232,29 +33232,19 @@ exceed 64k. The default is to use the @code{basr} instruction instead, which does not have this limitation. @opindex m64 -@opindex m31 @item -m64 -@itemx -m31 -When @option{-m31} is specified, generate code compliant to the -GNU/Linux for S/390 ABI@. When @option{-m64} is specified, generate -code compliant to the GNU/Linux for zSeries ABI@. This allows GCC in -particular to generate 64-bit instructions. For the @samp{s390} -targets, the default is @option{-m31}, while the @samp{s390x} -targets default to @option{-m64}. Note, @option{-m31} is deprecated and -support will be removed. +After the removal of @option{-m31}, option @option{-m64} has no counterpart +anymore. For the sake of backwards compatibility, the option is still accepted +but doesn't have any effect anymore. Therefore, generated code comprises +64-bit instructions and follows the GNU/Linux for zSeries ABI by default. + @opindex mzarch -@opindex mesa @item -mzarch -@itemx -mesa -When @option{-mzarch} is specified, generate code using the -instructions available on z/Architecture. -When @option{-mesa} is specified, generate code using the -instructions available on ESA/390. Note that @option{-mesa} is -not possible with @option{-m64}. -When generating code compliant to the GNU/Linux for S/390 ABI, -the default is @option{-mesa}. When generating code compliant -to the GNU/Linux for zSeries ABI, the default is @option{-mzarch}. +After the removal of @option{-mesa}, option @option{-mzarch} has no counterpart +anymore. For the sake of backwards compatibility, the option is still accepted +but doesn't have any effect anymore. Therefore, generated code comprises +instructions available on z/Architecture by default. @opindex mhtm @opindex mno-htm diff --git a/gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c b/gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c index d3962bdc344..ed86b446fed 100644 --- a/gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c +++ b/gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target arm*-*-* s390-*-* } } */ +/* { dg-do compile { target arm*-*-* } } */ /* { dg-options "-std=c99" } we need long long */ /* { dg-additional-options "-mcpu=unset -march=armv7-a+fp -marm" { target arm*-*-* } } */ @@ -7,9 +7,6 @@ #if defined (__arm__) # define GPR1 "{r4}" # define GPR2_RAW "r5" -#elif defined (__s390__) -# define GPR1 "{r4}" -# define GPR2_RAW "r5" #endif #define GPR2 "{"GPR2_RAW"}" diff --git a/gcc/testsuite/gcc.dg/builtin-bswap-8.c b/gcc/testsuite/gcc.dg/builtin-bswap-8.c index 3dbde6ba0ab..35f2bd6b5d1 100644 --- a/gcc/testsuite/gcc.dg/builtin-bswap-8.c +++ b/gcc/testsuite/gcc.dg/builtin-bswap-8.c @@ -1,7 +1,6 @@ /* { dg-do compile { target arm*-*-* alpha*-*-* i?86-*-* powerpc*-*-* rs6000-*-* x86_64-*-* s390*-*-* } } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-rtl-combine" } */ -/* { dg-options "-O2 -fdump-rtl-combine -march=z900" { target s390-*-* } } */ #include diff --git a/gcc/testsuite/gcc.dg/ifcvt-4.c b/gcc/testsuite/gcc.dg/ifcvt-4.c index 485352df6e6..0a7b1b3fb66 100644 --- a/gcc/testsuite/gcc.dg/ifcvt-4.c +++ b/gcc/testsuite/gcc.dg/ifcvt-4.c @@ -4,7 +4,6 @@ /* { dg-additional-options "-mtune-ctrl=^one_if_conv_insn" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-skip-if "Multiple set if-conversion not guaranteed on all subtargets" { "arm*-*-* avr-*-* cris-*-* hppa*64*-*-* visium-*-*" riscv*-*-* msp430-*-* pru-*-* loongarch32-*-* } } */ /* { dg-skip-if "" { { sparc*-*-* } && { ! sparc_v9 } } } */ -/* { dg-skip-if "" { "s390x-*-*" } { "-m31" } } */ typedef int word __attribute__((mode(word))); diff --git a/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c b/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c index a5d8bfd5838..286432cb444 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c +++ b/gcc/testsuite/gcc.dg/optimize-bswaphi-1.c @@ -2,7 +2,6 @@ /* { dg-require-effective-target bswap } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-tree-bswap" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ #include diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-3.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-3.c index 7cd1b406a87..44ab8ffa308 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-3.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-3.c @@ -2,7 +2,6 @@ /* { dg-require-effective-target bswap } */ /* { dg-require-effective-target stdint_types } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ typedef int SItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-4.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-4.c index cfcc8324c57..35a1ff300c5 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-4.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-4.c @@ -1,7 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target bswap } */ /* { dg-options "-O2 -fdump-tree-bswap" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ typedef unsigned char u8; typedef unsigned int u32; diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-5.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-5.c index 5934aacf75a..4651f276932 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-5.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-5.c @@ -1,7 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target bswap } */ /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized -fno-inline-functions" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ struct L { unsigned int l[2]; }; union U { double a; struct L l; } u; diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-6.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-6.c index 75f8aecb5d8..e850493e490 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-6.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-6.c @@ -2,7 +2,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target bswap } */ /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ typedef unsigned char u8; typedef unsigned int u32; diff --git a/gcc/testsuite/gcc.dg/optimize-bswapsi-7.c b/gcc/testsuite/gcc.dg/optimize-bswapsi-7.c index 1e4db5e4818..e3f71a32e5f 100644 --- a/gcc/testsuite/gcc.dg/optimize-bswapsi-7.c +++ b/gcc/testsuite/gcc.dg/optimize-bswapsi-7.c @@ -2,7 +2,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target bswap } */ /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized" } */ -/* { dg-additional-options "-march=z900" { target s390-*-* } } */ static unsigned int f1 (unsigned int x) diff --git a/gcc/testsuite/gcc.dg/pr120525.c b/gcc/testsuite/gcc.dg/pr120525.c index 5ab7a2244dc..7dc32e55ba5 100644 --- a/gcc/testsuite/gcc.dg/pr120525.c +++ b/gcc/testsuite/gcc.dg/pr120525.c @@ -1,6 +1,5 @@ /* { dg-do compile { target fpic } } */ /* { dg-options "-O2 -fpic -g" } */ -/* { dg-additional-options "-m31" { target s390x-*-* } } */ typedef __SIZE_TYPE__ uintptr_t; static __thread uintptr_t start_sp; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c index a8f2c3bbfdb..a43fd79fef7 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c @@ -5,11 +5,6 @@ /* { dg-options "-O1 -ftree-loop-ivcanon -funroll-loops -fdump-tree-ivcanon-details -fdump-tree-cunroll-details -fdump-tree-optimized -mshort-calls" {target epiphany-*-*} } */ -/* On 31-bit S/390 the function address will be stored (once) in the literal pool, - so scan-assembler-times "foo" will return 1 even if the loop is fully unrolled. - -msmall-exec avoids this by enabling a call instruction with immediate operand. */ -/* { dg-options "-O1 -ftree-loop-ivcanon -funroll-loops -fdump-tree-ivcanon-details -fdump-tree-cunroll-details -fdump-tree-optimized -msmall-exec" { target s390-*-* } } */ - /* On Darwin, we call extern functions via a stub in PIC mode which is default and the stub is named after the function. To avoid this we use -static to go out of PIC mode. */ diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp index 1f9d6afb40a..07e542e2ec3 100644 --- a/gcc/testsuite/gcc.misc-tests/linkage.exp +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp @@ -61,15 +61,6 @@ if { [isnative] && ![is_remote host] } then { if [ string match "*64*" $file_string ] { set native_cflags "-xarch=amd64" } - } - if [istarget "s390*-*-linux*"] { - set file_string [exec file "linkage-x.o"] - if [ string match "*32-bit*" $file_string ] { - set native_cflags "-m31" - } - if [ string match "*64-bit*" $file_string ] { - set native_cflags "-m64" - } } elseif {[istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] || [istarget "i?86-*-gnu*"] || [istarget "x86_64-*-gnu*"] } then { set file_string [exec file "linkage-x.o"] diff --git a/gcc/testsuite/gcc.target/s390/20020926-1.c b/gcc/testsuite/gcc.target/s390/20020926-1.c deleted file mode 100644 index aaa13427696..00000000000 --- a/gcc/testsuite/gcc.target/s390/20020926-1.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Make sure that LEGITIMIZE_ADDRESS is called to handle - negative displacements. */ - -/* { dg-do compile { target { s390-*-* } } } */ -/* { dg-options "-O2 -mesa" } */ - -int test (int *addr) -{ - return *(addr - 1); -} - -/* { dg-final { scan-assembler "-4096" } } */ -/* { dg-final { scan-assembler-not "ahi" } } */ - diff --git a/gcc/testsuite/gcc.target/s390/20140327-1.c b/gcc/testsuite/gcc.target/s390/20140327-1.c deleted file mode 100644 index 25c73913772..00000000000 --- a/gcc/testsuite/gcc.target/s390/20140327-1.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile { target { ! lp64 } } } */ -/* { dg-options "-O3 -mzarch" } */ - -void -foo () -{ - asm ("" ::: "%f4"); -} - -/* { dg-final { scan-assembler "ld" } } */ diff --git a/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c b/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c index ebc02479587..d6f3ad9cf64 100644 --- a/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c +++ b/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -march=z13 -mzarch --save-temps" } */ +/* { dg-options "-O3 -march=z13 --save-temps" } */ #include #include @@ -74,10 +74,7 @@ main () /* { dg-final { scan-assembler-not "\tcgr" } } */ /* { dg-final { scan-assembler-not "\txgr" } } */ /* { dg-final { scan-assembler-not "\tngr" } } */ -/* On 31 bit the long long variants use risbgn to merge the 32 bit - regs into a 64 bit reg. */ -/* { dg-final { scan-assembler-not "\trisbg" { target { lp64 } } } } */ +/* { dg-final { scan-assembler-not "\trisbg" } } */ /* Just one for the ret != 6 comparison. */ /* { dg-final { scan-assembler-times "ci" 1 } } */ -/* { dg-final { scan-assembler-times "\tlochio\t" 6 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tlocghio\t" 6 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\tlocghio\t" 6 } } */ diff --git a/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c b/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c index 8bd1a764bc6..63eb8a683a5 100644 --- a/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c +++ b/gcc/testsuite/gcc.target/s390/addsub-signed-overflow-2.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O3 -march=z13 -mzarch --save-temps" } */ +/* { dg-options "-O3 -march=z13 --save-temps" } */ #include #include @@ -73,10 +73,7 @@ main () /* { dg-final { scan-assembler-not "\tcgr" } } */ /* { dg-final { scan-assembler-not "\txgr" } } */ /* { dg-final { scan-assembler-not "\tngr" } } */ -/* On 31 bit the long long variants use risbgn to merge the 32 bit - regs into a 64 bit reg. */ -/* { dg-final { scan-assembler-not "\trisbg" { target { lp64 } } } } */ +/* { dg-final { scan-assembler-not "\trisbg" } } */ /* Just one for the ret != 3 comparison. */ /* { dg-final { scan-assembler-times "ci" 1 } } */ -/* { dg-final { scan-assembler-times "\tlochio\t" 6 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tlocghio\t" 6 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\tlocghio\t" 6 */ diff --git a/gcc/testsuite/gcc.target/s390/asm-constant-1.c b/gcc/testsuite/gcc.target/s390/asm-constant-1.c index 980bea1cfab..e76904eb345 100644 --- a/gcc/testsuite/gcc.target/s390/asm-constant-1.c +++ b/gcc/testsuite/gcc.target/s390/asm-constant-1.c @@ -1,11 +1,9 @@ /* { dg-do compile } */ -/* { dg-final { scan-assembler {# 127 127 128 128 32767 32767 32768 32768 2147483647 2147483647 -2147483648 -2147483648} { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler {# 127 127 128 128 32767 32767 32768 32768 2147483647 2147483647 2147483648 2147483648 9223372036854775807 9223372036854775807 -9223372036854775808 -9223372036854775808} { target lp64 } } } */ +/* { dg-final { scan-assembler {# 127 127 128 128 32767 32767 32768 32768 2147483647 2147483647 2147483648 2147483648 9223372036854775807 9223372036854775807 -9223372036854775808 -9223372036854775808} } } */ void test (void) { -#ifdef __s390x__ __asm__ __volatile__ ("# %0 %c0 %1 %c1 %2 %c2 %3 %c3 %4 %c4 %5 %c5 %6 %c6 %7 %c7" :: "i" (0x7f), "i" (0x80), @@ -15,13 +13,4 @@ test (void) "i" (0x80000000L), "i" (0x7fffffffffffffffL), "i" (0x8000000000000000L)); -#else - __asm__ __volatile__ ("# %0 %c0 %1 %c1 %2 %c2 %3 %c3 %4 %c4 %5 %c5" :: - "i" (0x7f), - "i" (0x80), - "i" (0x7fff), - "i" (0x8000), - "i" (0x7fffffff), - "i" (0x80000000L)); -#endif } diff --git a/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c b/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c index 6df0c75584f..0f0093f34fc 100644 --- a/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c +++ b/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c @@ -1,18 +1,15 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -march=z10 -mzarch -fPIC -mno-pic-data-is-text-relative" } */ +/* { dg-options "-O3 -march=z10 -fPIC -mno-pic-data-is-text-relative" } */ #include "call.h" /* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */ -/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {lrl\t%r2,foo@GOTENT\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} } } */ /* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r2,foostatic\n} } } */ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ -/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {lrl\t%r2,fooweak@GOTENT\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/call-z10-pic.c b/gcc/testsuite/gcc.target/s390/call-z10-pic.c index 30145d5b760..4da626310b1 100644 --- a/gcc/testsuite/gcc.target/s390/call-z10-pic.c +++ b/gcc/testsuite/gcc.target/s390/call-z10-pic.c @@ -4,15 +4,12 @@ #include "call.h" /* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */ -/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {lrl\t%r2,foo@GOTENT\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} } } */ /* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r2,foostatic\n} } } */ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ -/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {lrl\t%r2,fooweak@GOTENT\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/call-z10.c b/gcc/testsuite/gcc.target/s390/call-z10.c index d4eab4ff89f..c261838d62a 100644 --- a/gcc/testsuite/gcc.target/s390/call-z10.c +++ b/gcc/testsuite/gcc.target/s390/call-z10.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -march=z10 -mzarch" } */ +/* { dg-options "-O3 -march=z10" } */ #include "call.h" @@ -12,5 +12,4 @@ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r2,fooweak\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c b/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c index fe515bf1903..d36b760b9e2 100644 --- a/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c +++ b/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c @@ -12,5 +12,4 @@ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r\d+,fooweak@GOTENT\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/call-z9-pic.c b/gcc/testsuite/gcc.target/s390/call-z9-pic.c index 43e1c2f7cb3..3bfd5a8199b 100644 --- a/gcc/testsuite/gcc.target/s390/call-z9-pic.c +++ b/gcc/testsuite/gcc.target/s390/call-z9-pic.c @@ -12,5 +12,4 @@ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r\d+,fooweak@GOTENT\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/call-z9.c b/gcc/testsuite/gcc.target/s390/call-z9.c index b755f33498a..f2b0f78fa41 100644 --- a/gcc/testsuite/gcc.target/s390/call-z9.c +++ b/gcc/testsuite/gcc.target/s390/call-z9.c @@ -12,5 +12,4 @@ /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */ /* { dg-final { scan-assembler {larl\t%r2,fooweak\n} } } */ -/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */ -/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} } } */ diff --git a/gcc/testsuite/gcc.target/s390/dwarfregtable-1.c b/gcc/testsuite/gcc.target/s390/dwarfregtable-1.c deleted file mode 100644 index b1254987451..00000000000 --- a/gcc/testsuite/gcc.target/s390/dwarfregtable-1.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Make sure the dwarf reg size table doesn't change for 31 bit. */ - -/* { dg-do compile { target { ! lp64 } } } */ -/* { dg-options "-mesa" } */ - -#define DWARF_FRAME_REGISTERS 34 - -static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS + 1]; -static unsigned char ref_reg_size_table[DWARF_FRAME_REGISTERS + 1] = - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 0 }; - -int -main () -{ - __builtin_init_dwarf_reg_size_table (dwarf_reg_size_table); - if (__builtin_memcmp (ref_reg_size_table, - dwarf_reg_size_table, DWARF_FRAME_REGISTERS + 1) != 0) - __builtin_abort (); - return 0; -} diff --git a/gcc/testsuite/gcc.target/s390/dwarfregtable-2.c b/gcc/testsuite/gcc.target/s390/dwarfregtable-2.c deleted file mode 100644 index bc5a9f8e6d8..00000000000 --- a/gcc/testsuite/gcc.target/s390/dwarfregtable-2.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Make sure the dwarf reg size table doesn't change for 31 bit zarch. */ - -/* { dg-do compile { target { ! lp64 } } } */ -/* { dg-options "-mzarch" } */ - -#define DWARF_FRAME_REGISTERS 34 - -static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS + 1]; -static unsigned char ref_reg_size_table[DWARF_FRAME_REGISTERS + 1] = - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 0 }; - -int -main () -{ - __builtin_init_dwarf_reg_size_table (dwarf_reg_size_table); - if (__builtin_memcmp (ref_reg_size_table, - dwarf_reg_size_table, DWARF_FRAME_REGISTERS + 1) != 0) - __builtin_abort (); - return 0; -} diff --git a/gcc/testsuite/gcc.target/s390/fcall-saved.c b/gcc/testsuite/gcc.target/s390/fcall-saved.c index a08155372f9..6a10bfabb51 100644 --- a/gcc/testsuite/gcc.target/s390/fcall-saved.c +++ b/gcc/testsuite/gcc.target/s390/fcall-saved.c @@ -1,11 +1,9 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -mzarch -fcall-saved-r4" } */ +/* { dg-options "-O3 -fcall-saved-r4" } */ void test(void) { asm volatile("nop" ::: "r4"); } -/* { dg-final { scan-assembler-times "\tstg\t" 1 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tlg\t" 1 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tst\t" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tl\t" 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "\tstg\t" 1 } } */ +/* { dg-final { scan-assembler-times "\tlg\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/s390/fp2int1.c b/gcc/testsuite/gcc.target/s390/fp2int1.c deleted file mode 100644 index 4a90a8b91de..00000000000 --- a/gcc/testsuite/gcc.target/s390/fp2int1.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Test for the 32 bit fp to 64 bit int conversion routines. - - On S/390 32 bit we use our own implementations in order to be IEEE - complaint as we are with our machine instructions. These missed to - throw FE_INVALID exceptions in a bunch of cases. */ - -/* { dg-do run { target s390-*-* } } */ -/* { dg-options "-O3 -mesa" } */ -/* { dg-require-effective-target fenv_exceptions } */ - -#define _GNU_SOURCE -#include -#include -#include - -#define INFINITYf (__builtin_inff()) -#define INFINITY (__builtin_inf()) -#define INFINITYl (__builtin_infl()) -#define NANf (__builtin_nanf ("")) -#define NAN (__builtin_nan ("")) -#define NANl (__builtin_nanl ("")) - -#define TESTEXCEPT_FUNC(FUNC, TYPE_FROM, TYPE_TO) \ - TYPE_TO \ - __attribute__((noinline)) FUNC (TYPE_FROM a) \ - { \ - asm volatile ("" : : "f" (a)); \ - return (TYPE_TO)a; \ - } - -#define TESTEXCEPT(FUNC, EXCEPT, EXPECT, VALUE, TYPE_TO) \ - { \ - TYPE_TO b; \ - feclearexcept (FE_ALL_EXCEPT); \ - b = FUNC (VALUE); \ - if ((fetestexcept (EXCEPT) & (EXCEPT)) != EXPECT) \ - { \ - printf ("FAIL in line: %d\n", __LINE__); \ - abort (); \ - } \ - } - -#define TESTEXCEPT_FUNC_ALLFLOATS(FUNC, TYPE_TO) \ - TESTEXCEPT_FUNC (FUNC##_f, float, TYPE_TO); \ - TESTEXCEPT_FUNC (FUNC##_d, double, TYPE_TO); \ - TESTEXCEPT_FUNC (FUNC##_l, long double, TYPE_TO); \ - -#define TESTEXCEPT_ALLFLOATS(FUNC, EXCEPT, EXPECT, VALUE, TYPE_TO) \ - TESTEXCEPT (FUNC##_f, EXCEPT, EXPECT, VALUE##f, TYPE_TO); \ - TESTEXCEPT (FUNC##_d, EXCEPT, EXPECT, VALUE, TYPE_TO); \ - TESTEXCEPT (FUNC##_l, EXCEPT, EXPECT, VALUE##l, TYPE_TO); \ - -TESTEXCEPT_FUNC_ALLFLOATS (a, unsigned long long); -TESTEXCEPT_FUNC_ALLFLOATS (u, long long); - - -int -main () -{ - /* Prevent getting signals. */ - fedisableexcept (FE_INVALID); - - /* To unsigned long long */ - - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, INFINITY, unsigned long long); - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, -INFINITY, unsigned long long); - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, NAN, unsigned long long); - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, -NAN, unsigned long long); - - /* Negative values >-1.0 must not cause FE_INVALID. */ - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, 0, -0x0.ffffffp0, unsigned long long); - /* -1.0 instead must. */ - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, -0x1.0p+0, unsigned long long); - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, 0, 0x1.0p+63, unsigned long long); - TESTEXCEPT_ALLFLOATS (a, FE_INVALID, FE_INVALID, 0x1.0p+64, unsigned long long); - - /* To signed long long */ - - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, INFINITY, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, -INFINITY, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, NAN, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, -NAN, long long); - - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, 0, -0x1.0p+63, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, -0x1.1p+63, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, 0, 0x0.fffffp+63, long long); - TESTEXCEPT_ALLFLOATS (u, FE_INVALID, FE_INVALID, 0x1.0p+63, long long); - - /* If there are additional bits which would not make it into the - integer value no exception is supposed to occur. */ - TESTEXCEPT (u_l, FE_INVALID, 0, -0x1.000000000000000123p+63l, long long); - TESTEXCEPT (u_l, FE_INVALID, FE_INVALID, -0x1.000000000000000223p+63l, long long); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/s390/global-array-element-pic2.c b/gcc/testsuite/gcc.target/s390/global-array-element-pic2.c index 0ee10841cac..72b87d40b85 100644 --- a/gcc/testsuite/gcc.target/s390/global-array-element-pic2.c +++ b/gcc/testsuite/gcc.target/s390/global-array-element-pic2.c @@ -1,6 +1,6 @@ /* Test accesses to global array elements in PIC code. */ /* { dg-do compile } */ -/* { dg-options "-O1 -march=z10 -mzarch -fPIC" } */ +/* { dg-options "-O1 -march=z10 -fPIC" } */ extern char a[] __attribute__ ((aligned (2))); extern char *b; @@ -8,7 +8,6 @@ extern char *b; void c() { b = a + 4; - /* { dg-final { scan-assembler "(?n)\n\tlgrl\t%r\\d+,a@GOTENT\n" { target lp64 } } } */ - /* { dg-final { scan-assembler "(?n)\n\tlrl\t%r\\d+,a@GOTENT\n" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "(?n)\n\tlgrl\t%r\\d+,a@GOTENT\n" } } */ /* { dg-final { scan-assembler-not "(?n)\n\tlarl\t%r\\d+,a\[^@\]" } } */ } diff --git a/gcc/testsuite/gcc.target/s390/insv-1.c b/gcc/testsuite/gcc.target/s390/insv-1.c index 020b5d8e3c0..206646e04e7 100644 --- a/gcc/testsuite/gcc.target/s390/insv-1.c +++ b/gcc/testsuite/gcc.target/s390/insv-1.c @@ -109,10 +109,4 @@ foo4c (unsigned long a, unsigned long b) } /* The functions foo3, foo4, foo3b, foo4b no longer use risbg but rosbg instead. - - On 64 bit, four risbg go away and four new ones appear in other functions - { dg-final { scan-assembler-times "risbg" 6 { target { lp64 } } } } - - ... but not on 31 bit. - { dg-final { scan-assembler-times "risbg" 2 { target { ! lp64 } } } } -*/ + { dg-final { scan-assembler-times "risbg" 6 } } */ diff --git a/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c b/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c index e1c7806ad96..4afc2205429 100644 --- a/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c +++ b/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c @@ -3,10 +3,8 @@ #include "isfinite-isinf-isnormal-signbit.h" -/* { dg-final { scan-assembler-times {tcxb\t%f[0-9]+,1365} 0 { target lp64 } } } SIGNBIT long double */ -/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 0 { target lp64 } } } SIGNBIT _Decimal128 */ -/* { dg-final { scan-assembler-times {tcxb\t%f[0-9]+,1365} 1 { target { ! lp64 } } } } SIGNBIT long double */ -/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 1 { target { ! lp64 } } } } SIGNBIT _Decimal128 */ +/* { dg-final { scan-assembler-times {tcxb\t%f[0-9]+,1365} 0 } } SIGNBIT long double */ +/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 0 } } SIGNBIT _Decimal128 */ /* { dg-final { scan-assembler-times {tcxb\t%f[0-9]+,4032} 1 } } ISFINITE long double */ /* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,4032} 1 } } ISFINITE _Decimal128 */ /* { dg-final { scan-assembler-times {tcxb\t%f[0-9]+,48} 1 } } ISINF long double */ diff --git a/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c b/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c index 5c9986d0600..cb5c788eef4 100644 --- a/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c +++ b/gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-3.c @@ -3,10 +3,8 @@ #include "isfinite-isinf-isnormal-signbit.h" -/* { dg-final { scan-assembler-times {wftcixb\t%v[0-9]+,%v[0-9]+,1365} 0 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 0 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {wftcixb\t%v[0-9]+,%v[0-9]+,1365} 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times {wftcixb\t%v[0-9]+,%v[0-9]+,1365} 0 } } */ +/* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,1365} 0 } } */ /* { dg-final { scan-assembler-times {wftcixb\t%v[0-9]+,%v[0-9]+,4032} 1 } } */ /* { dg-final { scan-assembler-times {tdcxt\t%f[0-9]+,4032} 1 } } */ /* { dg-final { scan-assembler-times {wftcixb\t%v[0-9]+,%v[0-9]+,48} 1 } } */ diff --git a/gcc/testsuite/gcc.target/s390/larl-1.c b/gcc/testsuite/gcc.target/s390/larl-1.c index e22975ba960..2ec96ab6c02 100644 --- a/gcc/testsuite/gcc.target/s390/larl-1.c +++ b/gcc/testsuite/gcc.target/s390/larl-1.c @@ -1,14 +1,13 @@ /* Check if load-address-relative instructions are created */ -/* { dg-do compile { target { s390*-*-* } } } */ +/* { dg-do compile } */ /* { dg-options "-O2 -march=z10 -mzarch -fno-section-anchors" } */ /* An explicitly misaligned symbol. This symbol is NOT aligned as mandated by our ABI. However, the back-end needs to handle that in order to make things like __attribute__((packed)) work. The symbol address is expected to be loaded from literal pool. */ -/* { dg-final { scan-assembler "lgrl\t%r2," { target { lp64 } } } } */ -/* { dg-final { scan-assembler "lrl\t%r2," { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "lgrl\t%r2," } } */ extern char align1 __attribute__((aligned(1))); /* { dg-final { scan-assembler "larl\t%r2,align2" } } */ diff --git a/gcc/testsuite/gcc.target/s390/leaf-profile.c b/gcc/testsuite/gcc.target/s390/leaf-profile.c index 60477400757..fbb2f1c3748 100644 --- a/gcc/testsuite/gcc.target/s390/leaf-profile.c +++ b/gcc/testsuite/gcc.target/s390/leaf-profile.c @@ -6,5 +6,4 @@ foo () { } /* Make sure no stack frame is generated. */ -/* { dg-final { scan-assembler-not "ahi" { target s390-*-* } } } */ /* { dg-final { scan-assembler-not "aghi" { target s390x-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/s390/load-relative-check.c b/gcc/testsuite/gcc.target/s390/load-relative-check.c index a55bc2442f1..7c85347b2d2 100644 --- a/gcc/testsuite/gcc.target/s390/load-relative-check.c +++ b/gcc/testsuite/gcc.target/s390/load-relative-check.c @@ -1,14 +1,10 @@ /* Check if load-relative instructions are created */ -/* { dg-do compile { target { s390*-*-* } } } */ +/* { dg-do compile } */ /* { dg-options "-O2 -march=z10 -mzarch -fno-section-anchors" } */ -/* { dg-final { scan-assembler "lgfrl\t%r.?,b.4" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "lgfrl\t%r.?,s.12" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "lgrl\t%r.?,s" { target { lp64 } } } } */ - -/* { dg-final { scan-assembler "lrl\t%r.?,b.4" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "lrl\t%r.?,s.8" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "lrl\t%r.?,s" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "lgfrl\t%r.?,b.4" } } */ +/* { dg-final { scan-assembler "lgfrl\t%r.?,s.12" } } */ +/* { dg-final { scan-assembler "lgrl\t%r.?,s" } } */ int b[20]; diff --git a/gcc/testsuite/gcc.target/s390/load-thread-pointer-once-2.c b/gcc/testsuite/gcc.target/s390/load-thread-pointer-once-2.c index 36b1ed8800f..e69acd959f8 100644 --- a/gcc/testsuite/gcc.target/s390/load-thread-pointer-once-2.c +++ b/gcc/testsuite/gcc.target/s390/load-thread-pointer-once-2.c @@ -10,5 +10,4 @@ void a(void) c(b); } -/* { dg-final { scan-assembler-times {\n\tear\t} 2 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times {\n\tear\t} 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times {\n\tear\t} 2 } } */ diff --git a/gcc/testsuite/gcc.target/s390/load-thread-pointer-once.c b/gcc/testsuite/gcc.target/s390/load-thread-pointer-once.c index 21a5bfaa732..b127b6356c0 100644 --- a/gcc/testsuite/gcc.target/s390/load-thread-pointer-once.c +++ b/gcc/testsuite/gcc.target/s390/load-thread-pointer-once.c @@ -8,5 +8,4 @@ void *bar() return (foo = __builtin_thread_pointer()); } -/* { dg-final { scan-assembler-times {\n\tear\t} 2 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times {\n\tear\t} 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times {\n\tear\t} 2 } } */ diff --git a/gcc/testsuite/gcc.target/s390/loc-1.c b/gcc/testsuite/gcc.target/s390/loc-1.c index 26dbd9cecb3..cfe0a122f55 100644 --- a/gcc/testsuite/gcc.target/s390/loc-1.c +++ b/gcc/testsuite/gcc.target/s390/loc-1.c @@ -9,8 +9,7 @@ unsigned long loc_r (unsigned long rc, unsigned long cond, unsigned long val) rc = val; return rc; } -/* { dg-final { scan-assembler "\tlocgrne\t%r2,%r4" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "\tlocrne\t%r2,%r4" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "\tlocgrne\t%r2,%r4" } } */ long loc_hi (long rc, long cond) { @@ -18,5 +17,4 @@ long loc_hi (long rc, long cond) rc = (long)-1; return rc; } -/* { dg-final { scan-assembler "\tlocghine\t%r2,-1" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "\tlochine\t%r2,-1" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "\tlocghine\t%r2,-1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c b/gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c index 7d098d8d987..96e15452f6d 100644 --- a/gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c +++ b/gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c @@ -16,25 +16,25 @@ __attribute__ ((noinline)) unsigned int andc_vv(unsigned int a, unsigned int b) { return ~b & a; } -/* { dg-final { scan-assembler ":18:.\* \{\\*andsi3_\(esa\|zarch\)\}" } } */ +/* { dg-final { scan-assembler ":18:.\* \{\\*andsi3\}" } } */ /* { dg-final { scan-assembler ":18:.\* \{\\*xorsi3\}" } } */ __attribute__ ((noinline)) unsigned int andc_pv(unsigned int *a, unsigned int b) { return ~b & *a; } -/* { dg-final { scan-assembler ":24:.\* \{\\*andsi3_\(esa\|zarch\)\}" } } */ +/* { dg-final { scan-assembler ":24:.\* \{\\*andsi3\}" } } */ /* { dg-final { scan-assembler ":24:.\* \{\\*xorsi3\}" } } */ __attribute__ ((noinline)) unsigned int andc_vp(unsigned int a, unsigned int *b) { return ~*b & a; } -/* { dg-final { scan-assembler ":30:.\* \{\\*andsi3_\(esa\|zarch\)\}" } } */ +/* { dg-final { scan-assembler ":30:.\* \{\\*andsi3\}" } } */ /* { dg-final { scan-assembler ":30:.\* \{\\*xorsi3\}" } } */ __attribute__ ((noinline)) unsigned int andc_pp(unsigned int *a, unsigned int *b) { return ~*b & *a; } -/* { dg-final { scan-assembler ":36:.\* \{\\*andsi3_\(esa\|zarch\)\}" } } */ +/* { dg-final { scan-assembler ":36:.\* \{\\*andsi3\}" } } */ /* { dg-final { scan-assembler ":36:.\* \{\\*xorsi3\}" } } */ /* { dg-final { scan-assembler-times "\tng\?r\?k\?\t" 4 } } */ diff --git a/gcc/testsuite/gcc.target/s390/mnop-mcount-m31-mzarch.c b/gcc/testsuite/gcc.target/s390/mnop-mcount-m31-mzarch.c deleted file mode 100644 index 874ceb96fe8..00000000000 --- a/gcc/testsuite/gcc.target/s390/mnop-mcount-m31-mzarch.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-m31 -mzarch -pg -mnop-mcount" } */ - -void -profileme (void) -{ - /* { dg-final { scan-assembler "NOPs for -mnop-mcount \\(7 halfwords\\)\n.*brcl\t0,0\n.*brcl\t0,0\n.*bcr\t0,0" } } */ -} diff --git a/gcc/testsuite/gcc.target/s390/mrecord-mcount.c b/gcc/testsuite/gcc.target/s390/mrecord-mcount.c index 54ced9f7a11..d8a23ffdca4 100644 --- a/gcc/testsuite/gcc.target/s390/mrecord-mcount.c +++ b/gcc/testsuite/gcc.target/s390/mrecord-mcount.c @@ -5,7 +5,6 @@ void profileme (void) { /* { dg-final { scan-assembler ".section __mcount_loc, \"a\",@progbits" } } */ - /* { dg-final { scan-assembler ".long 1b" { target { ! lp64 } } } } */ - /* { dg-final { scan-assembler ".quad 1b" { target { lp64 } } } } */ + /* { dg-final { scan-assembler ".quad 1b" } } */ /* { dg-final { scan-assembler ".previous" } } */ } diff --git a/gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c b/gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c index e8b1938dab7..20205bdabbd 100644 --- a/gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c +++ b/gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c @@ -50,10 +50,7 @@ main () /* { dg-final { scan-assembler-not "\tcgr" } } */ /* { dg-final { scan-assembler-not "\txgr" } } */ /* { dg-final { scan-assembler-not "\tngr" } } */ -/* On 31 bit the long long variants use risbgn to merge the 32 bit - regs into a 64 bit reg. */ -/* { dg-final { scan-assembler-not "\trisbg" { target { lp64 } } } } */ +/* { dg-final { scan-assembler-not "\trisbg" } } */ /* Just one for the ret != 3 comparison. */ /* { dg-final { scan-assembler-times "ci" 1 } } */ -/* { dg-final { scan-assembler-times "\tlochio\t" 3 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tlocghio\t" 3 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\tlocghio\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/s390/mul-signed-overflow-2.c b/gcc/testsuite/gcc.target/s390/mul-signed-overflow-2.c index 01328e1d286..6c0e6fcfab0 100644 --- a/gcc/testsuite/gcc.target/s390/mul-signed-overflow-2.c +++ b/gcc/testsuite/gcc.target/s390/mul-signed-overflow-2.c @@ -52,8 +52,7 @@ main () /* { dg-final { scan-assembler-not "\tngr" } } */ /* On 31 bit the long long variants use risbgn to merge the 32 bit regs into a 64 bit reg. */ -/* { dg-final { scan-assembler-not "\trisbg" { target { lp64 } } } } */ +/* { dg-final { scan-assembler-not "\trisbg" } } */ /* Just one for the ret != 3 comparison. */ /* { dg-final { scan-assembler-times "ci" 1 } } */ -/* { dg-final { scan-assembler-times "\tlochio\t" 3 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tlocghio\t" 3 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\tlocghio\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/s390/not.c b/gcc/testsuite/gcc.target/s390/not.c index dae95f7d8a0..6a61312ba65 100644 --- a/gcc/testsuite/gcc.target/s390/not.c +++ b/gcc/testsuite/gcc.target/s390/not.c @@ -7,5 +7,4 @@ foo (unsigned long a) return ~a; } -/* { dg-final { scan-assembler-times "\tnngrk\t" 1 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "\tnnrk\t" 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "\tnngrk\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/s390/pr102222.c b/gcc/testsuite/gcc.target/s390/pr102222.c deleted file mode 100644 index 47d075e47fc..00000000000 --- a/gcc/testsuite/gcc.target/s390/pr102222.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -m31 -mesa" } */ - -struct squashfs_reg_inode_header_1 read_inode_inode; - -int read_inode_val; - -struct squashfs_reg_inode_header_1 -{ - int file_size:32; -} __attribute__((packed)) read_inode (); - -void foo (void) -{ - read_inode_inode.file_size = read_inode_val; -} diff --git a/gcc/testsuite/gcc.target/s390/pr106355-2.c b/gcc/testsuite/gcc.target/s390/pr106355-2.c deleted file mode 100644 index ddbdba5d278..00000000000 --- a/gcc/testsuite/gcc.target/s390/pr106355-2.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile { target { s390-*-* } } } */ -/* { dg-options "-foptimize-sibling-calls -mzarch" } */ -/* { dg-final { scan-assembler {brasl\t%r\d+,bar} } } */ - -/* This tests function s390_call_saved_register_used where - GET_CODE (parm_rtx) == PARALLEL holds. */ - -#include "pr106355.h" diff --git a/gcc/testsuite/gcc.target/s390/pr106355-3.c b/gcc/testsuite/gcc.target/s390/pr106355-3.c deleted file mode 100644 index 39daea44fc4..00000000000 --- a/gcc/testsuite/gcc.target/s390/pr106355-3.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile { target { s390-*-* } } } */ -/* { dg-options "-foptimize-sibling-calls -mesa" } */ -/* { dg-final { scan-assembler {brasl\t%r\d+,bar} } } */ - -/* This tests function s390_call_saved_register_used where - REG_P (parm_rtx) and nregs == 2 holds. */ - -#include "pr106355.h" diff --git a/gcc/testsuite/gcc.target/s390/pr119873-5.c b/gcc/testsuite/gcc.target/s390/pr119873-5.c deleted file mode 100644 index b5a7950d62b..00000000000 --- a/gcc/testsuite/gcc.target/s390/pr119873-5.c +++ /dev/null @@ -1,11 +0,0 @@ -/* PR target/119873 */ -/* { dg-do compile } */ -/* { dg-options "-O2 -m31 -mzarch" } */ - -extern void foo (int x, int y, int z, long long w, int v); - -void -bar (int x, int y, int z, long long w, int v) -{ - [[gnu::musttail]] return foo (x, y, z, w, v); -} diff --git a/gcc/testsuite/gcc.target/s390/pr42224.c b/gcc/testsuite/gcc.target/s390/pr42224.c index 67146d20fb9..c2ebc132956 100644 --- a/gcc/testsuite/gcc.target/s390/pr42224.c +++ b/gcc/testsuite/gcc.target/s390/pr42224.c @@ -1,6 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O0 -Wno-implicit-function-declaration" } */ +#ifdef __tpf__ + typedef char* __char_ptr32 __attribute__ (( mode (SI) )); typedef __char_ptr32 *__char_ptr_char_ptr32 __attribute__ ((mode (SI))); @@ -33,3 +35,4 @@ to_ptr32_ptr32 (char **ptr64) } +#endif diff --git a/gcc/testsuite/gcc.target/s390/pr61078.c b/gcc/testsuite/gcc.target/s390/pr61078.c deleted file mode 100644 index 40f6ad7df09..00000000000 --- a/gcc/testsuite/gcc.target/s390/pr61078.c +++ /dev/null @@ -1,26 +0,0 @@ -/* This testcase is extracted from s390_emit_prologue. The negation - of a 64bit value got split incorrectly on 31 bit. */ - -/* { dg-do run { target { ! lp64 } } } */ -/* { dg-options "-O2 -mesa" } */ - -extern void abort (void); - -long long frame_size = 42; - -int __attribute__((noinline)) -foo (int a __attribute__((unused)), long long b) -{ - return (int)b; -} - -int -main () -{ - if (frame_size > 0) - { - if (foo (0, -frame_size) != -42) - abort (); - } - return 0; -} diff --git a/gcc/testsuite/gcc.target/s390/preserve-args-1.c b/gcc/testsuite/gcc.target/s390/preserve-args-1.c index 24dcf547432..c3c0229f58a 100644 --- a/gcc/testsuite/gcc.target/s390/preserve-args-1.c +++ b/gcc/testsuite/gcc.target/s390/preserve-args-1.c @@ -10,8 +10,7 @@ foo (int a, int b, int c, double d, double e) return a + c + (int)d + (int)e; } -/* { dg-final { scan-assembler "stmg\t%r2,%r4,\[0-9\]*\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "stm\t%r2,%r4,\[0-9\]*\\(%r15\\)" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "stmg\t%r2,%r4,\[0-9\]*\\(%r15\\)" } } */ /* { dg-final { scan-assembler "std\t%f0,\[0-9\]*\\(%r15\\)" } } */ /* { dg-final { scan-assembler "std\t%f2,\[0-9\]*\\(%r15\\)" } } */ diff --git a/gcc/testsuite/gcc.target/s390/preserve-args-3.c b/gcc/testsuite/gcc.target/s390/preserve-args-3.c index f4b135ab8e6..53a73195c00 100644 --- a/gcc/testsuite/gcc.target/s390/preserve-args-3.c +++ b/gcc/testsuite/gcc.target/s390/preserve-args-3.c @@ -12,8 +12,7 @@ foo (int a, int, int c, double d, ...) return a + c + va_arg(argp, int) + va_arg(argp, int) + (int)va_arg(argp, double); } -/* { dg-final { scan-assembler "stmg\t%r2,%r15,\[0-9\]*\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "stm\t%r2,%r15,\[0-9\]*\\(%r15\\)" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "stmg\t%r2,%r15,\[0-9\]*\\(%r15\\)" } } */ /* { dg-final { scan-assembler "std\t%f0,\[0-9\]*\\(%r15\\)" } } */ /* { dg-final { scan-assembler "std\t%f2,\[0-9\]*\\(%r15\\)" } } */ diff --git a/gcc/testsuite/gcc.target/s390/risbg-ll-1.c b/gcc/testsuite/gcc.target/s390/risbg-ll-1.c index 1cac15820c0..bebc796d009 100644 --- a/gcc/testsuite/gcc.target/s390/risbg-ll-1.c +++ b/gcc/testsuite/gcc.target/s390/risbg-ll-1.c @@ -25,8 +25,7 @@ i32 f1 (i32 v_foo) // ...and again with i64. i64 f2 (i64 v_foo) { - /* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r2,64-1,128\\\+63,53\\\+1" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f2:\n\trisbg\t%r3,%r3,64-1,128\\\+63,53\\\+1\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r2,64-1,128\\\+63,53\\\+1" } } */ i64 v_shr = ((ui64)v_foo) >> 10; i64 v_and = v_shr & 1; return v_and; @@ -44,8 +43,7 @@ i32 f3 (i32 v_foo) // ...and again with i64. i64 f4 (i64 v_foo) { - /* { dg-final { scan-assembler "f4:\n\trisbg\t%r2,%r2,60,128\\\+61,64-22" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f4:\n\trisbg\t%r3,%r3,60,128\\\+61,64-22\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f4:\n\trisbg\t%r2,%r2,60,128\\\+61,64-22" } } */ i64 v_shr = ((ui64)v_foo) >> 22; i64 v_and = v_shr & 12; return v_and; @@ -64,8 +62,7 @@ i32 f5 (i32 v_foo) // ...and again with i64. i64 f6 (i64 v_foo) { - /* { dg-final { scan-assembler "f6:\n\trisbg\t%r2,%r2,2,128\\\+60,64-2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f6:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r2,%r3,2,128\\\+60,64-2" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f6:\n\trisbg\t%r2,%r2,2,128\\\+60,64-2" } } */ i64 v_shr = ((ui64)v_foo) >> 2; i64 v_and = v_shr & -8; return v_and; @@ -78,8 +75,7 @@ i32 f7 (i32 v_foo) /* Should be { dg-final { scan-assembler "f7:\n\tsrl\t%r2,2\n\tnill\t%r2,65529" { xfail { lp64 } } } } but because a zeroextend is merged into the pattern it is actually - { dg-final { scan-assembler "f7:\n\tsrl\t%r2,2\n\tlgfi\t%r1,1073741817\n\tngr\t%r2,%r1" { target { lp64 } } } } - { dg-final { scan-assembler "f7:\n\tsrl\t%r2,2\n\tnill\t%r2,65529" { target { ! lp64 } } } } */ + { dg-final { scan-assembler "f7:\n\tsrl\t%r2,2\n\tlgfi\t%r1,1073741817\n\tngr\t%r2,%r1" } } */ i32 v_shr = ((ui32)v_foo) >> 2; i32 v_and = v_shr & -7; return v_and; @@ -88,8 +84,7 @@ i32 f7 (i32 v_foo) // ...and again with i64. i64 f8 (i64 v_foo) { - /* { dg-final { scan-assembler "f8:\n\tsrlg\t%r2,%r2,2\n\tnill\t%r2,65529" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f8:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tsrlg\t%r2,%r3,2\n\tnill\t%r2,65529" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f8:\n\tsrlg\t%r2,%r2,2\n\tnill\t%r2,65529" } } */ i64 v_shr = ((ui64)v_foo) >> 2; i64 v_and = v_shr & -7; return v_and; @@ -108,8 +103,7 @@ i32 f9 (i32 v_foo) // ...and again with i64. i64 f10 (i64 v_foo) { - /* { dg-final { scan-assembler "f10:\n\trisbg\t%r2,%r2,56,128\\\+61,2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f10:\n\trisbg\t%r3,%r3,56,128\\\+61,2\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f10:\n\trisbg\t%r2,%r2,56,128\\\+61,2" } } */ i64 v_shr = v_foo << 2; i64 v_and = v_shr & 255; return v_and; @@ -128,8 +122,7 @@ i32 f11 (i32 v_foo) // ...and again with i64. i64 f12 (i64 v_foo) { - /* { dg-final { scan-assembler "f12:\n\tsllg\t%r2,%r2,2\n\tnill\t%r2,65295" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f12:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tsllg\t%r2,%r3,2\n\tnill\t%r2,65295" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f12:\n\tsllg\t%r2,%r2,2\n\tnill\t%r2,65295" } } */ i64 v_shr = v_foo << 2; i64 v_and = v_shr & -241; return v_and; @@ -140,8 +133,7 @@ i64 f12 (i64 v_foo) // shl are not used. i32 f13 (i32 v_foo) { - /* { dg-final { scan-assembler "f13:\n\trisbg\t%r2,%r2,56,128\\\+60,32\\\+14" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f13:\n\trll\t%r2,%r2,14\n\tnilf\t%r2,248" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f13:\n\trisbg\t%r2,%r2,56,128\\\+60,32\\\+14" } } */ i32 v_parta = v_foo << 14; i32 v_partb = ((ui32)v_foo) >> 18; i32 v_rotl = v_parta | v_partb; @@ -152,8 +144,7 @@ i32 f13 (i32 v_foo) // ...and again with i64. i64 f14 (i64 v_foo) { - /* { dg-final { scan-assembler "f14:\n\trisbg\t%r2,%r2,56,128\\\+60,14" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f14:\n\trisbg\t%r3,%r2,56,128\\\+60,46\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f14:\n\trisbg\t%r2,%r2,56,128\\\+60,14" } } */ i64 v_parta = v_foo << 14; i64 v_partb = ((ui64)v_foo) >> 50; i64 v_rotl = v_parta | v_partb; @@ -164,8 +155,7 @@ i64 f14 (i64 v_foo) // Try a case in which only the bits from the shl are used. i32 f15 (i32 v_foo) { - /* { dg-final { scan-assembler "f15:\n\trisbg\t%r2,%r2,47,128\\\+49,14" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f15:\n\trll\t%r2,%r2,14\n\tnilf\t%r2,114688" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f15:\n\trisbg\t%r2,%r2,47,128\\\+49,14" } } */ i32 v_parta = v_foo << 14; i32 v_partb = ((ui32)v_foo) >> 18; i32 v_rotl = v_parta | v_partb; @@ -176,8 +166,7 @@ i32 f15 (i32 v_foo) // ...and again with i64. i64 f16 (i64 v_foo) { - /* { dg-final { scan-assembler "f16:\n\trisbg\t%r2,%r2,47,128\\\+49,14" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f16:\n\trisbg\t%r3,%r3,47,128\\\+49,14\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f16:\n\trisbg\t%r2,%r2,47,128\\\+49,14" } } */ i64 v_parta = v_foo << 14; i64 v_partb = ((ui64)v_foo) >> 50; i64 v_rotl = v_parta | v_partb; @@ -192,8 +181,7 @@ i32 f17 (i32 v_foo) /* Should be { dg-final { scan-assembler "f17:\n\trll\t%r2,%r2,4\n\tnilf\t%r2,126" { xfail { lp64 } } } } but because a zeroextend is merged into the pattern it is actually - { dg-final { scan-assembler "f17:\n\trll\t%r2,%r2,4\n\trisbg\t%r2,%r2,57,128\\\+62,0" { target { lp64 } } } } - { dg-final { scan-assembler "f17:\n\trll\t%r2,%r2,4\n\tnilf\t%r2,126" { target { ! lp64 } } } } */ + { dg-final { scan-assembler "f17:\n\trll\t%r2,%r2,4\n\trisbg\t%r2,%r2,57,128\\\+62,0" } } */ i32 v_parta = v_foo << 4; i32 v_partb = ((ui32)v_foo) >> 28; i32 v_rotl = v_parta | v_partb; @@ -204,8 +192,7 @@ i32 f17 (i32 v_foo) // ...and for i64, where RISBG should do the rotate too. i64 f18 (i64 v_foo) { - /* { dg-final { scan-assembler "f18:\n\trisbg\t%r2,%r2,57,128\\\+62,4" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f18:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tlhi\t%r2,0\n\trisbg\t%r3,%r3,57,128\\\+62,4" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f18:\n\trisbg\t%r2,%r2,57,128\\\+62,4" } } */ i64 v_parta = v_foo << 4; i64 v_partb = ((ui64)v_foo) >> 60; i64 v_rotl = v_parta | v_partb; @@ -217,8 +204,7 @@ i64 f18 (i64 v_foo) // This needs a separate shift and mask on 31 bit. i32 f19 (i32 v_foo) { - /* { dg-final { scan-assembler "f19:\n\trisbg\t%r2,%r2,59,128\\+62,64-28" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f19:\n\tsra\t%r2,28\n\tnilf\t%r2,30" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f19:\n\trisbg\t%r2,%r2,59,128\\+62,64-28" } } */ i32 v_shr = v_foo >> 28; i32 v_and = v_shr & 30; return v_and; @@ -227,8 +213,7 @@ i32 f19 (i32 v_foo) // ...and again with i64. In this case RISBG is the best way of doing the AND. i64 f20 (i64 v_foo) { - /* { dg-final { scan-assembler "f20:\n\tsrag\t%r2,%r2,60\n\trisbg\t%r2,%r2,59,128\\\+62,0" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f20:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tlhi\t%r2,0\n\tsrag\t%r3,%r3,60\n\tnilf\t%r3,30" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f20:\n\tsrag\t%r2,%r2,60\n\trisbg\t%r2,%r2,59,128\\\+62,0" } } */ i64 v_shr = v_foo >> 60; i64 v_and = v_shr & 30; return v_and; @@ -248,8 +233,7 @@ i32 f21 (i32 v_foo) // ...and again with i64. i64 f22 (i64 v_foo) { - /* { dg-final { scan-assembler "f22:\n\trisbg\t%r2,%r2,60,128\\\+62,64-60" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f22:\n\trisbg\t%r3,%r2,60,128\\\+62,64-28\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f22:\n\trisbg\t%r2,%r2,60,128\\\+62,64-60" } } */ i64 v_shr = v_foo >> 60; i64 v_and = v_shr & 14; return v_and; @@ -259,8 +243,7 @@ i64 f22 (i64 v_foo) // natural zero extension. i64 f23 (i64 v_foo) { - /* { dg-final { scan-assembler "f23:\n\trisbg\t%r2,%r2,64-8,128\\\+63,54\\\+8" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f23:\n\trisbg\t%r3,%r3,64-8,128\\\+63,54\\\+8\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f23:\n\trisbg\t%r2,%r2,64-8,128\\\+63,54\\\+8" } } */ i64 v_shr = ((ui64)v_foo) >> 2; i64 v_and = v_shr & 255; return v_and; @@ -281,8 +264,7 @@ i32 f24 (i32 v_foo) // ...and again with i64, where a single RISBG is enough. i64 f25 (i64 v_foo) { - /* { dg-final { scan-assembler "f25:\n\trisbg\t%r2,%r2,57,128\\\+59,3" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f25:\n\trisbg\t%r3,%r3,57,128\\\+59,3\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f25:\n\trisbg\t%r2,%r2,57,128\\\+59,3" } } */ i64 v_and = v_foo & 14; i64 v_parta = v_and << 3; i64 v_partb = ((ui64)v_and) >> 61; @@ -305,8 +287,7 @@ i32 f26 (i32 v_foo) // ...and again with i64, where a single RISBG is OK. i64 f27 (i64 v_foo) { - /* { dg-final { scan-assembler "f27:\n\trisbg\t%r2,%r2,55,128\\\+52,5" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f27:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r2,%r3,55,128\\\+52,5" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f27:\n\trisbg\t%r2,%r2,55,128\\\+52,5" } } */ i64 v_and = v_foo & -49; i64 v_parta = v_and << 5; i64 v_partb = ((ui64)v_and) >> 59; @@ -326,8 +307,7 @@ i32 f28 (i32 v_foo) // ...and again with i64. i64 f29 (i64 v_foo) { - /* { dg-final { scan-assembler "f29:\n\trisbg\t%r2,%r2,0,128\\\+13,49" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f29:\n\trisbg\t%r\[23\],%r3,0,128\\\+13,49\n\tlr\t%r\[23\],%r\[32\]\n\tsrlg\t%r2,%r2" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f29:\n\trisbg\t%r2,%r2,0,128\\\+13,49" } } */ i64 v_and = v_foo & 32766; i64 v_shl = v_and << 49; return v_shl; @@ -345,8 +325,7 @@ i32 f30 (i32 v_foo) // ...and again with i64. i64 f31 (i64 v_foo) { - /* { dg-final { scan-assembler "f31:\n\trisbg\t%r2,%r2,0,128\\\+12,50" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f31:\n\trisbg\t%r\[23\],%r3,0,128\\\+12,50\n\tlr\t%r\[23\],%r\[32\]\n\tsrlg\t%r2,%r2" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f31:\n\trisbg\t%r2,%r2,0,128\\\+12,50" } } */ i64 v_and = v_foo & 32766; i64 v_shl = v_and << 50; return v_shl; @@ -365,8 +344,7 @@ i32 f32 (i32 v_foo) // ...and again with i64. i64 f33 (i64 v_foo) { - /* { dg-final { scan-assembler "f33:\n\tsllg\t%r2,%r2,10\n\tnill\t%r2,58368" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f33:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tsllg\t%r2,%r3,10\n\tnill\t%r2,58368" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f33:\n\tsllg\t%r2,%r2,10\n\tnill\t%r2,58368" } } */ i64 v_and = v_foo & -7; i64 v_shl = v_and << 10; return v_shl; @@ -384,8 +362,7 @@ i32 f34 (i32 v_foo) // ...and again with i64. i64 f35 (i64 v_foo) { - /* { dg-final { scan-assembler "f35:\n\trisbg\t%r2,%r2,64-7,128\\\+63,48\\\+7" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f35:\n\trisbg\t%r3,%r3,64-7,128\\\+63,48\\\+7\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f35:\n\trisbg\t%r2,%r2,64-7,128\\\+63,48\\\+7" } } */ i64 v_and = v_foo & 65535; i64 v_shl = ((ui64)v_and) >> 9; return v_shl; @@ -395,8 +372,7 @@ i64 f35 (i64 v_foo) // We can't use RISBG for the shift in that case. i32 f36 (i32 v_foo) { - /* { dg-final { scan-assembler "f36:\n\tsrl\t%r2,1\n\tlgfi\t%r1,2147483635\n\tngr\t%r2,%r1" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f36:\n\tsrl\t%r2,1\n\tnilf\t%r2,2147483635" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f36:\n\tsrl\t%r2,1\n\tlgfi\t%r1,2147483635\n\tngr\t%r2,%r1" } } */ i32 v_and = v_foo & -25; i32 v_shl = ((ui32)v_and) >> 1; return v_shl; @@ -405,8 +381,7 @@ i32 f36 (i32 v_foo) // ...and again with i64. i64 f37 (i64 v_foo) { - /* { dg-final { scan-assembler "f37:\n\(\t.*\n\)*\tsrlg\t%r2,%r2,1\n\tng\t%r2," { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f37:\n\(\t.*\n\)*\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tsrlg\t%r2,%r3,1\n\tng\t%r2," { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f37:\n\(\t.*\n\)*\tsrlg\t%r2,%r2,1\n\tng\t%r2," } } */ i64 v_and = v_foo & -25; i64 v_shl = ((ui64)v_and) >> 1; return v_shl; @@ -416,8 +391,7 @@ i64 f37 (i64 v_foo) // use RISBG there. i64 f38 (i64 v_foo) { - /* { dg-final { scan-assembler "f38:\n\tsrag\t%r2,%r2,32\n\tsllg\t%r2,%r2,5" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f38:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tsrag\t%r2,%r3,32\n\tsllg\t%r2,%r2,5" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f38:\n\tsrag\t%r2,%r2,32\n\tsllg\t%r2,%r2,5" } } */ i64 v_ashr = v_foo >> 32; i64 v_shl = v_ashr << 5; return v_shl; @@ -426,8 +400,7 @@ i64 f38 (i64 v_foo) // Try a similar thing in which no shifted sign bits are kept. i64 f39 (i64 v_foo, i64 *v_dest) { - /* { dg-final { scan-assembler "f39:\n\tsrag\t%r2,%r2,35\n\(\t.*\n\)*\trisbg\t%r2,%r2,33,128\\\+61,2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f39:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tlhi\t%r2,0\n\tsrag\t%r3,%r3,35\n\(\t.*\n\)*\trisbg\t%r3,%r3,33,128\\\+61,2" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f39:\n\tsrag\t%r2,%r2,35\n\(\t.*\n\)*\trisbg\t%r2,%r2,33,128\\\+61,2" } } */ i64 v_ashr = v_foo >> 35; *v_dest = v_ashr; i64 v_shl = v_ashr << 2; @@ -438,8 +411,7 @@ i64 f39 (i64 v_foo, i64 *v_dest) // ...and again with the next highest shift value, where one sign bit is kept. i64 f40 (i64 v_foo, i64 *v_dest) { - /* { dg-final { scan-assembler "f40:\n\tsrag\t%r2,%r2,36\n\(\t.*\n\)*\trisbg\t%r2,%r2,33,128\\\+61,2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f40:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\tlhi\t%r2,0\n\tsrag\t%r3,%r3,36\n\(\t.*\n\)*\trisbg\t%r3,%r3,33,128\\\+61,2" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f40:\n\tsrag\t%r2,%r2,36\n\(\t.*\n\)*\trisbg\t%r2,%r2,33,128\\\+61,2" } } */ i64 v_ashr = v_foo >> 36; *v_dest = v_ashr; i64 v_shl = v_ashr << 2; @@ -450,8 +422,7 @@ i64 f40 (i64 v_foo, i64 *v_dest) // Check a case where the result is zero-extended. i64 f41 (i32 v_a) { - /* { dg-final { scan-assembler "f41:\n\trisbg\t%r2,%r2,64-28,128\\\+63,34\\\+28" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f41:\n\trisbg\t%r3,%r2,64-28,128\\\+63,34\\\+28\n\tlhi\t%r2,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f41:\n\trisbg\t%r2,%r2,64-28,128\\\+63,34\\\+28" } } */ i32 v_shl = v_a << 2; i32 v_shr = ((ui32)v_shl) >> 4; i64 v_ext = (ui64)v_shr; @@ -464,8 +435,7 @@ i64 f41 (i32 v_a) typedef struct { ui64 pad : 63; ui8 a : 1; } t42; i64 f42 (t42 v_x) { - /* { dg-final { scan-assembler "f42:\n\tsllg\t%r2,%r2,63\n\tsrag\t%r2,%r2,63\n\tllgcr\t%r2,%r2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f42:\n\tsllg\t%r3,%r3,63\n\tlhi\t%r2,0\n\tsrag\t%r3,%r3,63\n\tllcr\t%r3,%r3" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f42:\n\tsllg\t%r2,%r2,63\n\tsrag\t%r2,%r2,63\n\tllgcr\t%r2,%r2" } } */ ui8 a = v_x.a << 7; i8 ext = ((i8)a) >> 7; i64 ext2 = (ui64)(ui8)ext; @@ -475,8 +445,7 @@ i64 f42 (t42 v_x) // Check that we get the case where a 64-bit shift is used by a 32-bit and. i32 f43 (i64 v_x) { - /* { dg-final { scan-assembler "f43:\n\trisbg\t%r2,%r2,32,128\\+61,32\\+20\n\tlgfr\t%r2,%r2" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f43:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r2,%r3,32,128\\\+61,64-12" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f43:\n\trisbg\t%r2,%r2,32,128\\+61,32\\+20\n\tlgfr\t%r2,%r2" } } */ i64 v_shr3 = ((ui64)v_x) >> 12; i32 v_shr3_tr = (ui32)v_shr3; i32 v_conv = v_shr3_tr & -4; @@ -486,8 +455,7 @@ i32 f43 (i64 v_x) // Check that we don't get the case where the 32-bit and mask is not contiguous i32 f44 (i64 v_x) { - /* { dg-final { scan-assembler "f44:\n\tsrlg\t%r2,%r2,12" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f44:\n\tsrlg\t%r2,%r3,12\n\tnilf\t%r2,10" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f44:\n\tsrlg\t%r2,%r2,12" } } */ i64 v_shr4 = ((ui64)v_x) >> 12; i32 v_conv = (ui32)v_shr4; i32 v_and = v_conv & 10; diff --git a/gcc/testsuite/gcc.target/s390/risbg-ll-2.c b/gcc/testsuite/gcc.target/s390/risbg-ll-2.c index ca80602a83f..b049456157c 100644 --- a/gcc/testsuite/gcc.target/s390/risbg-ll-2.c +++ b/gcc/testsuite/gcc.target/s390/risbg-ll-2.c @@ -23,8 +23,7 @@ i32 f1 (i32 v_a, i32 v_b) // ...and again with i64. i64 f2 (i64 v_a, i64 v_b) { - /* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f2:\n\trisbg\t%r3,%r2,0,0\\\+32-1,64-0-32\n\(\t.*\n\)*\trisbg\t%r\[23\],%r5,60,62,0" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0" } } */ i64 v_anda = v_a & -15; i64 v_andb = v_b & 14; i64 v_or = v_anda | v_andb; @@ -45,8 +44,7 @@ i32 f3 (i32 v_a, i32 v_b) // ...and again with i64. i64 f4 (i64 v_a, i64 v_b) { - /* { dg-final { scan-assembler "f4:\n\trisbg\t%r2,%r3,64-4,63,\\(64-64\\)\\+4\\+52" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f4:\n\(\t.*\n\)*\trisbg\t%r5,%r5,64-4,128\\+63,\\(64-64\\)\\+52\\+4" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f4:\n\trisbg\t%r2,%r3,64-4,63,\\(64-64\\)\\+4\\+52" } } */ i64 v_anda = v_a & -16; i64 v_shr = ((ui64)v_b) >> 8; i64 v_andb = v_shr & 15; @@ -67,8 +65,7 @@ i32 f5 (i32 v_a, i32 v_b) // ...and again with i64. i64 f6 (i64 v_a, i64 v_b) { - /* { dg-final { scan-assembler "f6:\n\trisbg\t%r2,%r3,0,64-10-1,10" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f6:\n\trisbg\t%r5,%r4,0,0\\\+32-1,64-0-32\n\(\t.*\n\)*\trisbg\t%r\[23\],%r5,0,64-10-1,10" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f6:\n\trisbg\t%r2,%r3,0,64-10-1,10" } } */ i64 v_anda = v_a & 1023; i64 v_shlb = v_b << 10; i64 v_or = v_anda | v_shlb; @@ -88,8 +85,7 @@ i32 f7 (i32 v_a, i32 v_b) // ...and again with i64. i64 f8 (i64 v_a, i64 v_b) { - /* { dg-final { scan-assembler "f8:\n\trisbg\t%r2,%r3,8,63,64-8" { target { lp64 } } } } */ - /* With -m31 risbg is not really useful here, so do not test for it. */ + /* { dg-final { scan-assembler "f8:\n\trisbg\t%r2,%r3,8,63,64-8" } } */ i64 v_anda = v_a & -72057594037927936; i64 v_shrb = ((ui64)v_b) >> 8; i64 v_or = v_anda | v_shrb; @@ -100,8 +96,7 @@ i64 f8 (i64 v_a, i64 v_b) // ands with complement masks. i32 f9 (i64 v_x, i32 v_y) { - /* { dg-final { scan-assembler "f9:\n\trisbg\t%r3,%r2,48,63,64-48" { target { lp64 } }} } */ - /* { dg-final { scan-assembler "f9:\n\trisbg\t%r4,%r2,32\\+16,63,64-16" { target { ! lp64 } }} } */ + /* { dg-final { scan-assembler "f9:\n\trisbg\t%r3,%r2,48,63,64-48" } } */ i64 v_shr6 = ((ui64)v_x) >> 48; i32 v_conv = (ui32)v_shr6; i32 v_and1 = v_y & -65536; @@ -113,8 +108,7 @@ i32 f9 (i64 v_x, i32 v_y) // ands with incompatible masks. i32 f10 (i64 v_x, i32 v_y) { - /* { dg-final { scan-assembler "f10:\n\tsrlg\t%r2,%r2,48\n\trosbg\t%r2,%r3,0,39,0" { target { lp64 } } } } */ - /* { dg-final { scan-assembler "f10:\n\tnilf\t%r4,4278190080\n\trosbg\t%r4,%r2,48,63,48" { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler "f10:\n\tsrlg\t%r2,%r2,48\n\trosbg\t%r2,%r3,0,39,0" } } */ i64 v_shr6 = ((ui64)v_x) >> 48; i32 v_conv = (ui32)v_shr6; i32 v_and1 = v_y & -16777216; diff --git a/gcc/testsuite/gcc.target/s390/risbg-ll-3.c b/gcc/testsuite/gcc.target/s390/risbg-ll-3.c index 02f6e046eb9..e3795e0f8aa 100644 --- a/gcc/testsuite/gcc.target/s390/risbg-ll-3.c +++ b/gcc/testsuite/gcc.target/s390/risbg-ll-3.c @@ -2,7 +2,7 @@ /* Tests ported from the Llvm testsuite. */ -/* { dg-do compile { target s390x-*-* } } */ +/* { dg-do compile } */ /* { dg-options "-O3 -march=zEC12 -mzarch -fno-asynchronous-unwind-tables" } */ #define i64 signed long long @@ -11,8 +11,7 @@ // On zEC12, we generally prefer RISBGN. i64 f1 (i64 v_a, i64 v_b) { -/* { dg-final { scan-assembler "f1:\n\trisbgn\t%r2,%r3,60,62,0" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "f1:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbgn\t%r3,%r5,60,62,0\n" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "f1:\n\trisbgn\t%r2,%r3,60,62,0" } } */ i64 v_anda = v_a & -15; i64 v_andb = v_b & 14; i64 v_or = v_anda | v_andb; @@ -23,8 +22,7 @@ i64 f1 (i64 v_a, i64 v_b) extern i64 f2_foo(); i64 f2 (i64 v_a, i64 v_b) { -/* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0\n\tbner\t%r14\n\tjg\tf2_foo.*\n" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "f2:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r3,%r5,60,62,0" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0\n\tbner\t%r14\n\tjg\tf2_foo.*\n" } } */ i64 v_anda = v_a & -15; i64 v_andb = v_b & 14; i64 v_or = v_anda | v_andb; @@ -37,8 +35,7 @@ i64 f2 (i64 v_a, i64 v_b) void f2_bar (); void f2_cconly (i64 v_a, i64 v_b) { -/* { dg-final { scan-assembler "f2_cconly:\n\trisbg\t%r2,%r3,60,62,0\n\tber\t%r14\n\tjg\tf2_bar(@PLT)?\n" { target { lp64 } } } } */ -/* { dg-final { scan-assembler "f2_cconly:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r3,%r5,60,62,0\n\tber\t%r14\n\tjg\tf2_bar(@PLT)?\n" { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler "f2_cconly:\n\trisbg\t%r2,%r3,60,62,0\n\tber\t%r14\n\tjg\tf2_bar(@PLT)?\n" } } */ if ((v_a & -15) | (v_b & 14)) f2_bar(); } diff --git a/gcc/testsuite/gcc.target/s390/stack-clash-4.c b/gcc/testsuite/gcc.target/s390/stack-clash-4.c deleted file mode 100644 index 619d99ddf69..00000000000 --- a/gcc/testsuite/gcc.target/s390/stack-clash-4.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O1 -m31 -mzarch -fstack-clash-protection" } */ - -extern void c(char*); - -void -a() { - char *b = __builtin_alloca(3); - c(b); -} diff --git a/gcc/testsuite/gcc.target/s390/stack-clash-5.c b/gcc/testsuite/gcc.target/s390/stack-clash-5.c deleted file mode 100644 index 81e202e2aab..00000000000 --- a/gcc/testsuite/gcc.target/s390/stack-clash-5.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O1 -m31 -mzarch -fstack-clash-protection" } */ - -extern void bar (char*); - -void -foo() { - char a[4000]; - bar (a) ; -} diff --git a/gcc/testsuite/gcc.target/s390/stack-protector-guard-tls-1.c b/gcc/testsuite/gcc.target/s390/stack-protector-guard-tls-1.c index 1efd2455144..b71ff2cf535 100644 --- a/gcc/testsuite/gcc.target/s390/stack-protector-guard-tls-1.c +++ b/gcc/testsuite/gcc.target/s390/stack-protector-guard-tls-1.c @@ -1,12 +1,9 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fstack-protector-all" } */ -/* { dg-final { scan-assembler-times {\tear\t%r[0-9]+,%a[01]} 8 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\tsllg\t%r[0-9]+,%r[0-9]+,32} 4 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\tear\t%r[0-9]+,%a[01]} 3 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times {\tmvc\t160\(8,%r15\),40\(%r[0-9]+\)} 2 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\tmvc\t100\(4,%r15\),20\(%r[0-9]+\)} 2 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times {\tclc\t160\(8,%r15\),40\(%r[0-9]+\)} 2 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\tclc\t100\(4,%r15\),20\(%r[0-9]+\)} 2 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times {\tear\t%r[0-9]+,%a[01]} 8 } } */ +/* { dg-final { scan-assembler-times {\tsllg\t%r[0-9]+,%r[0-9]+,32} 4 } } */ +/* { dg-final { scan-assembler-times {\tmvc\t160\(8,%r15\),40\(%r[0-9]+\)} 2 } } */ +/* { dg-final { scan-assembler-times {\tclc\t160\(8,%r15\),40\(%r[0-9]+\)} 2 } } */ /* Computing the address of the thread pointer on s390 involves multiple instructions and therefore bears the risk that the address of the canary or diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c index a22a3e11018..5a3b8366ff6 100644 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c @@ -10,8 +10,7 @@ void da(int x) { bar(x); bar(x + 1); - /* { dg-final { scan-assembler-times "\ttmll\t%r15,256" 2 { target { lp64 } } } } */ - /* { dg-final { scan-assembler-times "\ttml\t%r15,384" 2 { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttmll\t%r15,256" 2 } } */ } #pragma GCC target("stack-size=1024,stack-guard=0") @@ -19,8 +18,7 @@ void p1(int x) { bar(x); bar(x + 1); - /* { dg-final { scan-assembler-times "\ttmll\t%r15,768" 1 { target { lp64 } } } } */ - /* { dg-final { scan-assembler-times "\ttml\t%r15,896" 1 { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttmll\t%r15,768" 1 } } */ } #pragma GCC reset_options @@ -29,8 +27,7 @@ void p0(int x) { bar(x); bar(x + 1); - /* { dg-final { scan-assembler-times "\ttmll\t%r15,1792" 1 { target { lp64 } } } } */ - /* { dg-final { scan-assembler-times "\ttml\t%r15,1920" 1 { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttmll\t%r15,1792" 1 } } */ } #pragma GCC reset_options @@ -39,8 +36,7 @@ void a1(int x) { bar(x); bar(x + 1); - /* { dg-final { scan-assembler-times "\ttmll\t%r15,3840" 1 { target { lp64 } } } } */ - /* { dg-final { scan-assembler-times "\ttml\t%r15,3968" 1 { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttmll\t%r15,3840" 1 } } */ } __attribute__ ((target("stack-size=8192,stack-guard=0"))) @@ -48,8 +44,7 @@ void a0(int x) { bar(x); bar(x + 1); - /* { dg-final { scan-assembler-times "\ttmll\t%r15,7936" 1 { target { lp64 } } } } */ - /* { dg-final { scan-assembler-times "\ttml\t%r15,8064" 1 { target { ! lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttmll\t%r15,7936" 1 } } */ } void d(int x) diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c index dd0c978936b..55b7f275645 100644 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c @@ -111,7 +111,5 @@ int a0h(void) return 8; } -/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -40" 10 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -8" 5 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -36" 10 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -4" 5 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -40" 10 } } */ +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -8" 5 } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c deleted file mode 100644 index 3247fff902b..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("arch=z13"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("arch=z10"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("arch=z10,arch=z13"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("arch=z13,arch=z10"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("arch=z13") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("arch=z10") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("arch=z10") -#pragma GCC target ("arch=z13") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z13") -#pragma GCC target ("arch=z10") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("arch=z13") -__attribute__ ((target ("arch=z13"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z13") -__attribute__ ((target ("arch=z13"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z13") -__attribute__ ((target ("arch=z10"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z13") -__attribute__ ((target ("arch=z10"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c deleted file mode 100644 index f1beb1d8773..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("branch-cost=1"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("branch-cost=2"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("branch-cost=2,branch-cost=1"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("branch-cost=1,branch-cost=2"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("branch-cost=1") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("branch-cost=2") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("branch-cost=2") -#pragma GCC target ("branch-cost=1") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=1") -#pragma GCC target ("branch-cost=2") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("branch-cost=1") -__attribute__ ((target ("branch-cost=1"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=1") -__attribute__ ((target ("branch-cost=1"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=1") -__attribute__ ((target ("branch-cost=2"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=1") -__attribute__ ((target ("branch-cost=2"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c deleted file mode 100644 index d459eec258f..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("warn-framesize=512"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("warn-framesize=0"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("warn-framesize=512") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("warn-framesize=0") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("warn-framesize=0") -#pragma GCC target ("warn-framesize=512") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=512") -#pragma GCC target ("warn-framesize=0") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("warn-framesize=512") -__attribute__ ((target ("warn-framesize=512"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=512") -__attribute__ ((target ("warn-framesize=512"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=512") -__attribute__ ((target ("warn-framesize=0"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=512") -__attribute__ ((target ("warn-framesize=0"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c deleted file mode 100644 index 8868f91df52..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("warn-framesize=0"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("warn-framesize=512"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("warn-framesize=0") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("warn-framesize=512") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("warn-framesize=512") -#pragma GCC target ("warn-framesize=0") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=0") -#pragma GCC target ("warn-framesize=512") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("warn-framesize=0") -__attribute__ ((target ("warn-framesize=0"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=0") -__attribute__ ((target ("warn-framesize=0"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=0") -__attribute__ ((target ("warn-framesize=512"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-framesize=0") -__attribute__ ((target ("warn-framesize=512"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c deleted file mode 100644 index 6e2c5e49a52..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mno-packed-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("backchain"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-backchain"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-backchain,backchain"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("backchain,no-backchain"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("backchain") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-backchain") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-backchain") -#pragma GCC target ("backchain") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("backchain") -#pragma GCC target ("no-backchain") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("backchain") -__attribute__ ((target ("backchain"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("backchain") -__attribute__ ((target ("backchain"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("backchain") -__attribute__ ((target ("no-backchain"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("backchain") -__attribute__ ((target ("no-backchain"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c deleted file mode 100644 index f928befa057..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-backchain"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("backchain"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("backchain,no-backchain"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-backchain,backchain"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-backchain") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("backchain") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("backchain") -#pragma GCC target ("no-backchain") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-backchain") -#pragma GCC target ("backchain") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-backchain") -__attribute__ ((target ("no-backchain"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-backchain") -__attribute__ ((target ("no-backchain"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-backchain") -__attribute__ ((target ("backchain"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-backchain") -__attribute__ ((target ("backchain"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c deleted file mode 100644 index de9d79dc8a8..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("hard-dfp"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-hard-dfp"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-hard-dfp,hard-dfp"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("hard-dfp,no-hard-dfp"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("hard-dfp") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-hard-dfp") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-hard-dfp") -#pragma GCC target ("hard-dfp") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-dfp") -#pragma GCC target ("no-hard-dfp") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("hard-dfp") -__attribute__ ((target ("hard-dfp"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-dfp") -__attribute__ ((target ("hard-dfp"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-dfp") -__attribute__ ((target ("no-hard-dfp"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-dfp") -__attribute__ ((target ("no-hard-dfp"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c deleted file mode 100644 index 3a893fbb00b..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-hard-dfp"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("hard-dfp"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("hard-dfp,no-hard-dfp"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-hard-dfp,hard-dfp"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-hard-dfp") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("hard-dfp") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("hard-dfp") -#pragma GCC target ("no-hard-dfp") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-hard-dfp") -#pragma GCC target ("hard-dfp") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-hard-dfp") -__attribute__ ((target ("no-hard-dfp"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-hard-dfp") -__attribute__ ((target ("no-hard-dfp"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-hard-dfp") -__attribute__ ((target ("hard-dfp"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-hard-dfp") -__attribute__ ((target ("hard-dfp"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c deleted file mode 100644 index 5cd0810fa96..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mno-hard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("hard-float"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("soft-float"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("soft-float,hard-float"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("hard-float,soft-float"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("hard-float") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("soft-float") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("soft-float") -#pragma GCC target ("hard-float") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-float") -#pragma GCC target ("soft-float") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("hard-float") -__attribute__ ((target ("hard-float"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-float") -__attribute__ ((target ("hard-float"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-float") -__attribute__ ((target ("soft-float"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("hard-float") -__attribute__ ((target ("soft-float"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c deleted file mode 100644 index 878f0020b43..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("soft-float"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("hard-float"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("hard-float,soft-float"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("soft-float,hard-float"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("soft-float") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("hard-float") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("hard-float") -#pragma GCC target ("soft-float") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("soft-float") -#pragma GCC target ("hard-float") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("soft-float") -__attribute__ ((target ("soft-float"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("soft-float") -__attribute__ ((target ("soft-float"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("soft-float") -__attribute__ ((target ("hard-float"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("soft-float") -__attribute__ ((target ("hard-float"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c deleted file mode 100644 index 918f26a8c38..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("htm"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-htm"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-htm,htm"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("htm,no-htm"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("htm") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-htm") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-htm") -#pragma GCC target ("htm") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("htm") -#pragma GCC target ("no-htm") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("htm") -__attribute__ ((target ("htm"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("htm") -__attribute__ ((target ("htm"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("htm") -__attribute__ ((target ("no-htm"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("htm") -__attribute__ ((target ("no-htm"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c deleted file mode 100644 index c663b9eb75c..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("arch=z10"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("arch=z13"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("arch=z13,arch=z10"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("arch=z10,arch=z13"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("arch=z10") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("arch=z13") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("arch=z13") -#pragma GCC target ("arch=z10") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z10") -#pragma GCC target ("arch=z13") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("arch=z10") -__attribute__ ((target ("arch=z10"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z10") -__attribute__ ((target ("arch=z10"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z10") -__attribute__ ((target ("arch=z13"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("arch=z10") -__attribute__ ((target ("arch=z13"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c deleted file mode 100644 index e9eacaa07a2..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-htm"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("htm"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("htm,no-htm"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-htm,htm"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-htm") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("htm") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("htm") -#pragma GCC target ("no-htm") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-htm") -#pragma GCC target ("htm") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-htm") -__attribute__ ((target ("no-htm"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-htm") -__attribute__ ((target ("no-htm"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-htm") -__attribute__ ((target ("htm"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-htm") -__attribute__ ((target ("htm"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c deleted file mode 100644 index 64ff61a1c5b..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("vx"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-vx"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-vx,vx"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("vx,no-vx"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("vx") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-vx") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-vx") -#pragma GCC target ("vx") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("vx") -#pragma GCC target ("no-vx") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("vx") -__attribute__ ((target ("vx"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("vx") -__attribute__ ((target ("vx"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("vx") -__attribute__ ((target ("no-vx"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("vx") -__attribute__ ((target ("no-vx"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c deleted file mode 100644 index 15954759ac9..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-vx"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("vx"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("vx,no-vx"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-vx,vx"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-vx") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("vx") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("vx") -#pragma GCC target ("no-vx") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-vx") -#pragma GCC target ("vx") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-vx") -__attribute__ ((target ("no-vx"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-vx") -__attribute__ ((target ("no-vx"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-vx") -__attribute__ ((target ("vx"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-vx") -__attribute__ ((target ("vx"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c deleted file mode 100644 index d8da7d7c766..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("packed-stack"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-packed-stack"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-packed-stack,packed-stack"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("packed-stack,no-packed-stack"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("packed-stack") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-packed-stack") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-packed-stack") -#pragma GCC target ("packed-stack") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("packed-stack") -#pragma GCC target ("no-packed-stack") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("packed-stack") -__attribute__ ((target ("packed-stack"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("packed-stack") -__attribute__ ((target ("packed-stack"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("packed-stack") -__attribute__ ((target ("no-packed-stack"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("packed-stack") -__attribute__ ((target ("no-packed-stack"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c deleted file mode 100644 index 87e4da5750a..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mno-backchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-packed-stack"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("packed-stack"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("packed-stack,no-packed-stack"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-packed-stack,packed-stack"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-packed-stack") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("packed-stack") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("packed-stack") -#pragma GCC target ("no-packed-stack") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-packed-stack") -#pragma GCC target ("packed-stack") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-packed-stack") -__attribute__ ((target ("no-packed-stack"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-packed-stack") -__attribute__ ((target ("no-packed-stack"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-packed-stack") -__attribute__ ((target ("packed-stack"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-packed-stack") -__attribute__ ((target ("packed-stack"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c deleted file mode 100644 index 19b238cda82..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("small-exec"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-small-exec"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-small-exec,small-exec"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("small-exec,no-small-exec"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("small-exec") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-small-exec") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-small-exec") -#pragma GCC target ("small-exec") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("small-exec") -#pragma GCC target ("no-small-exec") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("small-exec") -__attribute__ ((target ("small-exec"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("small-exec") -__attribute__ ((target ("small-exec"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("small-exec") -__attribute__ ((target ("no-small-exec"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("small-exec") -__attribute__ ((target ("no-small-exec"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c deleted file mode 100644 index e4b49dc052f..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-small-exec"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("small-exec"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("small-exec,no-small-exec"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-small-exec,small-exec"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-small-exec") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("small-exec") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("small-exec") -#pragma GCC target ("no-small-exec") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-small-exec") -#pragma GCC target ("small-exec") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-small-exec") -__attribute__ ((target ("no-small-exec"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-small-exec") -__attribute__ ((target ("no-small-exec"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-small-exec") -__attribute__ ((target ("small-exec"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-small-exec") -__attribute__ ((target ("small-exec"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c deleted file mode 100644 index 030ddae66cc..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("mvcle"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-mvcle"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-mvcle,mvcle"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("mvcle,no-mvcle"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("mvcle") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-mvcle") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-mvcle") -#pragma GCC target ("mvcle") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("mvcle") -#pragma GCC target ("no-mvcle") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("mvcle") -__attribute__ ((target ("mvcle"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("mvcle") -__attribute__ ((target ("mvcle"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("mvcle") -__attribute__ ((target ("no-mvcle"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("mvcle") -__attribute__ ((target ("no-mvcle"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c deleted file mode 100644 index ae784a63533..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-mvcle"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("mvcle"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("mvcle,no-mvcle"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("no-mvcle,mvcle"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-mvcle") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("mvcle") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("mvcle") -#pragma GCC target ("no-mvcle") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-mvcle") -#pragma GCC target ("mvcle") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-mvcle") -__attribute__ ((target ("no-mvcle"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-mvcle") -__attribute__ ((target ("no-mvcle"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-mvcle") -__attribute__ ((target ("mvcle"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-mvcle") -__attribute__ ((target ("mvcle"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c deleted file mode 100644 index 2a50e6afdcb..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c +++ /dev/null @@ -1,177 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("zvector") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-zvector") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-zvector") -#pragma GCC target ("zvector") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("zvector") -#pragma GCC target ("no-zvector") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c deleted file mode 100644 index a2ee07509d0..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("tune=z13"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("tune=z10"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("tune=z10,tune=z13"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("tune=z13,tune=z10"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("tune=z13") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("tune=z10") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("tune=z10") -#pragma GCC target ("tune=z13") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z13") -#pragma GCC target ("tune=z10") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("tune=z13") -__attribute__ ((target ("tune=z13"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z13") -__attribute__ ((target ("tune=z13"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z13") -__attribute__ ((target ("tune=z10"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z13") -__attribute__ ((target ("tune=z10"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c deleted file mode 100644 index f82d9ee216f..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c +++ /dev/null @@ -1,177 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-zvector") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("zvector") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("zvector") -#pragma GCC target ("no-zvector") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-zvector") -#pragma GCC target ("zvector") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c deleted file mode 100644 index 77939aae723..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("warn-dynamicstack"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ - -__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("warn-dynamicstack") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("no-warn-dynamicstack") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("no-warn-dynamicstack") -#pragma GCC target ("warn-dynamicstack") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-dynamicstack") -#pragma GCC target ("no-warn-dynamicstack") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("warn-dynamicstack") -__attribute__ ((target ("warn-dynamicstack"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-dynamicstack") -__attribute__ ((target ("warn-dynamicstack"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-dynamicstack") -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("warn-dynamicstack") -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c deleted file mode 100644 index 6bdc55af5d9..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("warn-dynamicstack"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ - -__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("no-warn-dynamicstack") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("warn-dynamicstack") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("warn-dynamicstack") -#pragma GCC target ("no-warn-dynamicstack") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-warn-dynamicstack") -#pragma GCC target ("warn-dynamicstack") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("no-warn-dynamicstack") -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-warn-dynamicstack") -__attribute__ ((target ("no-warn-dynamicstack"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-warn-dynamicstack") -__attribute__ ((target ("warn-dynamicstack"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("no-warn-dynamicstack") -__attribute__ ((target ("warn-dynamicstack"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c deleted file mode 100644 index 5780f96500f..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("tune=z10"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("tune=z13"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("tune=z13,tune=z10"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("tune=z10,tune=z13"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("tune=z10") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("tune=z13") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("tune=z13") -#pragma GCC target ("tune=z10") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z10") -#pragma GCC target ("tune=z13") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("tune=z10") -__attribute__ ((target ("tune=z10"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z10") -__attribute__ ((target ("tune=z10"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z10") -__attribute__ ((target ("tune=z13"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("tune=z10") -__attribute__ ((target ("tune=z13"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c deleted file mode 100644 index 15e7f220c76..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("stack-size=4096"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("stack-size=2048"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("stack-size=2048,stack-size=4096"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("stack-size=4096,stack-size=2048"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("stack-size=4096") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("stack-size=2048") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("stack-size=2048") -#pragma GCC target ("stack-size=4096") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=4096") -#pragma GCC target ("stack-size=2048") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("stack-size=4096") -__attribute__ ((target ("stack-size=4096"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=4096") -__attribute__ ((target ("stack-size=4096"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=4096") -__attribute__ ((target ("stack-size=2048"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=4096") -__attribute__ ((target ("stack-size=2048"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c deleted file mode 100644 index a946ff85177..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("stack-size=2048"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("stack-size=4096"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("stack-size=4096,stack-size=2048"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("stack-size=2048,stack-size=4096"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("stack-size=2048") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("stack-size=4096") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("stack-size=4096") -#pragma GCC target ("stack-size=2048") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=2048") -#pragma GCC target ("stack-size=4096") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("stack-size=2048") -__attribute__ ((target ("stack-size=2048"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=2048") -__attribute__ ((target ("stack-size=2048"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=2048") -__attribute__ ((target ("stack-size=4096"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-size=2048") -__attribute__ ((target ("stack-size=4096"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c deleted file mode 100644 index b929f675c55..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("stack-guard=16"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("stack-guard=0"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("stack-guard=0,stack-guard=16"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("stack-guard=16,stack-guard=0"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("stack-guard=16") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("stack-guard=0") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("stack-guard=0") -#pragma GCC target ("stack-guard=16") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=16") -#pragma GCC target ("stack-guard=0") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("stack-guard=16") -__attribute__ ((target ("stack-guard=16"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=16") -__attribute__ ((target ("stack-guard=16"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=16") -__attribute__ ((target ("stack-guard=0"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=16") -__attribute__ ((target ("stack-guard=0"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c deleted file mode 100644 index fee9644a505..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("stack-guard=0"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("stack-guard=16"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("stack-guard=16,stack-guard=0"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ - -__attribute__ ((target ("stack-guard=0,stack-guard=16"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("stack-guard=0") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ - -#pragma GCC target ("stack-guard=16") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ - -#pragma GCC target ("stack-guard=16") -#pragma GCC target ("stack-guard=0") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=0") -#pragma GCC target ("stack-guard=16") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("stack-guard=0") -__attribute__ ((target ("stack-guard=0"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=0") -__attribute__ ((target ("stack-guard=0"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=0") -__attribute__ ((target ("stack-guard=16"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ -#pragma GCC reset_options - -#pragma GCC target ("stack-guard=0") -__attribute__ ((target ("stack-guard=16"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c deleted file mode 100644 index 04741ef0d6e..00000000000 --- a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c +++ /dev/null @@ -1,353 +0,0 @@ -/* Functional tests for the "target" attribute and pragma. */ - -/* { dg-do assemble { target { ! lp64 } } } */ -/* { dg-require-effective-target target_attribute } */ -/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ - -/** - ** - ** Start - ** - **/ - -void fn_default_start (void) { } -/* { dg-final { scan-assembler "fn:fn_default_start ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ - -/** - ** - ** Attribute - ** - **/ - -__attribute__ ((target ("branch-cost=2"))) -void fn_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ - -void fn_att_1_default (void) { } - -__attribute__ ((target ("branch-cost=1"))) -void fn_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ - -void fn_att_0_default (void) { } - -__attribute__ ((target ("branch-cost=1,branch-cost=2"))) -void fn_att_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ - -__attribute__ ((target ("branch-cost=2,branch-cost=1"))) -void fn_att_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ - -/** - ** - ** Pragma - ** - **/ - -#pragma GCC target ("branch-cost=2") -void fn_pragma_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_1_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ - -#pragma GCC target ("branch-cost=1") -void fn_pragma_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ -#pragma GCC reset_options - -void fn_pragma_0_default (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ - -#pragma GCC target ("branch-cost=1") -#pragma GCC target ("branch-cost=2") -void fn_pragma_0_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=2") -#pragma GCC target ("branch-cost=1") -void fn_pragma_1_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** Pragma and attribute - ** - **/ - -#pragma GCC target ("branch-cost=2") -__attribute__ ((target ("branch-cost=2"))) -void fn_pragma_1_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=2") -__attribute__ ((target ("branch-cost=2"))) -void fn_pragma_0_att_1 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=2") -__attribute__ ((target ("branch-cost=1"))) -void fn_pragma_1_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ -#pragma GCC reset_options - -#pragma GCC target ("branch-cost=2") -__attribute__ ((target ("branch-cost=1"))) -void fn_pragma_0_att_0 (void) { } -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ -#pragma GCC reset_options - -/** - ** - ** End - ** - **/ - -void fn_default_end (void) { } -/* { dg-final { scan-assembler "fn:fn_default_end ar7" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end tu4" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ -/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/tls.c b/gcc/testsuite/gcc.target/s390/tls.c index 3d479d8e48f..2845994871c 100644 --- a/gcc/testsuite/gcc.target/s390/tls.c +++ b/gcc/testsuite/gcc.target/s390/tls.c @@ -6,5 +6,4 @@ /* foo must use the initial-exec model, foostatic must use the local-exec model. */ -/* { dg-final { scan-assembler-times {\tear} 4 { target lp64 } } } */ -/* { dg-final { scan-assembler-times {\tear} 2 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times {\tear} 4 } } */ diff --git a/gcc/testsuite/gcc.target/s390/uaddc-1.c b/gcc/testsuite/gcc.target/s390/uaddc-1.c index bec55942ea8..4c75e4c522b 100644 --- a/gcc/testsuite/gcc.target/s390/uaddc-1.c +++ b/gcc/testsuite/gcc.target/s390/uaddc-1.c @@ -1,11 +1,10 @@ /* { dg-do run { target { s390_useable_hw } } } */ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ -/* { dg-final { scan-tree-dump-times "\\.UADDC \\(" 4 "optimized" { target lp64 } } } */ -/* { dg-final { scan-tree-dump-times "\\.UADDC \\(" 2 "optimized" { target { ! lp64 } } } } */ +/* { dg-final { scan-tree-dump-times "\\.UADDC \\(" 4 "optimized" } } */ /* { dg-final { scan-assembler-times "\\talcr\\t" 1 } } */ /* { dg-final { scan-assembler-times "\\talc\\t" 1 } } */ -/* { dg-final { scan-assembler-times "\\talcgr\\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "\\talcg\\t" 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\\talcgr\\t" 1 } } */ +/* { dg-final { scan-assembler-times "\\talcg\\t" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/s390/uaddc-2.c b/gcc/testsuite/gcc.target/s390/uaddc-2.c index da88733c835..95f5c5c36ed 100644 --- a/gcc/testsuite/gcc.target/s390/uaddc-2.c +++ b/gcc/testsuite/gcc.target/s390/uaddc-2.c @@ -1,9 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "\\.UADDC \\(" 6 "optimized" } } */ -/* { dg-final { scan-assembler-times "\\talcr\\t" 6 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\\talcr\\t" 3 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "\\talcgr\\t" 3 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\\talcr\\t" 3 } } */ +/* { dg-final { scan-assembler-times "\\talcgr\\t" 3 } } */ #define TEST(T, V, OP) \ unsigned T \ diff --git a/gcc/testsuite/gcc.target/s390/uaddc-3.c b/gcc/testsuite/gcc.target/s390/uaddc-3.c index 3237fc208ff..bf37592c6b3 100644 --- a/gcc/testsuite/gcc.target/s390/uaddc-3.c +++ b/gcc/testsuite/gcc.target/s390/uaddc-3.c @@ -2,10 +2,8 @@ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "\\.UADDC \\(\[^,\]+, \[^,\]+, 0\\)" 1 "optimized" } } */ /* { dg-final { scan-tree-dump-times "\\.UADDC \\(\[^,\]+, \[^,\]+, _.+\\)" 1 "optimized" } } */ -/* { dg-final { scan-assembler-times "alg\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "ag\t" 2 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "al\t" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "a\t" 2 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "alg\t" 1 } } */ +/* { dg-final { scan-assembler-times "ag\t" 2 } } */ static unsigned long uaddc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out) diff --git a/gcc/testsuite/gcc.target/s390/usubc-1.c b/gcc/testsuite/gcc.target/s390/usubc-1.c index 608b5ea89bf..a27879d9714 100644 --- a/gcc/testsuite/gcc.target/s390/usubc-1.c +++ b/gcc/testsuite/gcc.target/s390/usubc-1.c @@ -1,11 +1,10 @@ /* { dg-do run { target { s390_useable_hw } } } */ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ -/* { dg-final { scan-tree-dump-times "\\.USUBC \\(" 4 "optimized" { target lp64 } } } */ -/* { dg-final { scan-tree-dump-times "\\.USUBC \\(" 2 "optimized" { target { ! lp64 } } } } */ +/* { dg-final { scan-tree-dump-times "\\.USUBC \\(" 4 "optimized" } } */ /* { dg-final { scan-assembler-times "\\tslbr\\t" 1 } } */ /* { dg-final { scan-assembler-times "\\tslb\\t" 1 } } */ -/* { dg-final { scan-assembler-times "\\tslbgr\\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "\\tslbg\\t" 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\\tslbgr\\t" 1 } } */ +/* { dg-final { scan-assembler-times "\\tslbg\\t" 1 } } */ #include diff --git a/gcc/testsuite/gcc.target/s390/usubc-2.c b/gcc/testsuite/gcc.target/s390/usubc-2.c index 382581e4d2b..5a7fd330de3 100644 --- a/gcc/testsuite/gcc.target/s390/usubc-2.c +++ b/gcc/testsuite/gcc.target/s390/usubc-2.c @@ -1,9 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "\\.USUBC \\(" 6 "optimized" } } */ -/* { dg-final { scan-assembler-times "\\tslbr\\t" 6 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "\\tslbr\\t" 3 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "\\tslbgr\\t" 3 { target lp64 } } } */ +/* { dg-final { scan-assembler-times "\\tslbr\\t" 3 } } */ +/* { dg-final { scan-assembler-times "\\tslbgr\\t" 3 } } */ #define TEST(T, V, OP) \ unsigned T \ diff --git a/gcc/testsuite/gcc.target/s390/usubc-3.c b/gcc/testsuite/gcc.target/s390/usubc-3.c index 04a3e82c686..7ed84813a9e 100644 --- a/gcc/testsuite/gcc.target/s390/usubc-3.c +++ b/gcc/testsuite/gcc.target/s390/usubc-3.c @@ -2,12 +2,9 @@ /* { dg-options "-O2 -march=z13 -mzarch -save-temps -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "\\.USUBC \\(\[^,\]+, \[^,\]+, 0\\)" 1 "optimized" } } */ /* { dg-final { scan-tree-dump-times "\\.USUBC \\(\[^,\]+, \[^,\]+, _.+\\)" 1 "optimized" } } */ -/* { dg-final { scan-assembler-times "slg\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "alcgr\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "slbg\t" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "sl\t" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "alcr\t" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "slb\t" 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "slg\t" 1 } } */ +/* { dg-final { scan-assembler-times "alcgr\t" 1 } } */ +/* { dg-final { scan-assembler-times "slbg\t" 1 } } */ static unsigned long usubc (unsigned long x, unsigned long y, unsigned long carry_in, unsigned long *carry_out) diff --git a/gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c b/gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c index 285ebc9a3a5..30c6ed47684 100644 --- a/gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c +++ b/gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c @@ -22,5 +22,4 @@ TEST(char,short,16) TEST(short,int,8) TEST(int,long,4) -/* { dg-final { scan-tree-dump-times "\.AVG_CEIL" 6 "optimized" { target lp64 } } } */ -/* { dg-final { scan-tree-dump-times "\.AVG_CEIL" 4 "optimized" { target { ! lp64 } } } } */ +/* { dg-final { scan-tree-dump-times "\.AVG_CEIL" 6 "optimized" } } */ diff --git a/gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c b/gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c index db18e5ec57b..b72f0f78803 100644 --- a/gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c +++ b/gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c @@ -1,11 +1,10 @@ /* Check calling convention in the vector ABI. */ -/* { dg-do compile { target { s390*-*-* } } } */ -/* { dg-options "-O3 -mzarch -march=z13" } */ +/* { dg-do compile } */ +/* { dg-options "-O3 -march=z13" } */ /* Make sure the last argument is fetched from the argument overflow area. */ -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,160\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,96\\(%r15\\)" { target ilp32 } } } */ +/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,160\\(%r15\\)" } } */ /* { dg-final { scan-assembler "gnu_attribute 8, 2" } } */ typedef double v2df __attribute__((vector_size(16))); diff --git a/gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c b/gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c index 4be2360a36e..6ba2334dacd 100644 --- a/gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c +++ b/gcc/testsuite/gcc.target/s390/vector/vec-abi-3.c @@ -1,6 +1,6 @@ /* Check calling convention in the vector ABI regarding vector like structs. */ -/* { dg-do compile { target { s390*-*-* } } } */ +/* { dg-do compile } */ /* { dg-options "-O3 -mzarch -march=z13" } */ /* addA */ @@ -24,10 +24,8 @@ /* addF */ /* { dg-final { scan-assembler-times "vab\t%v24,%v\[0-9\]*,%v\[0-9\]*" 1 } } */ -/* { dg-final { scan-assembler-times "srlg\t%r\[0-9\]*,%r2,32" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "srlg\t%r\[0-9\]*,%r3,32" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "llgfr\t%.*,%r2" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "llgfr\t%.*,%r4" 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "srlg\t%r\[0-9\]*,%r2,32" 1 } } */ +/* { dg-final { scan-assembler-times "srlg\t%r\[0-9\]*,%r3,32" 1 } } */ typedef double v2df __attribute__((vector_size(16))); diff --git a/gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c b/gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c index fea44f98f62..666a2afce06 100644 --- a/gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c +++ b/gcc/testsuite/gcc.target/s390/vector/vec-abi-4.c @@ -4,10 +4,8 @@ /* { dg-do compile { target { s390*-*-* } } } */ /* { dg-options "-O3 -mzarch -march=z13" } */ -/* { dg-final { scan-assembler-times "lde\t%.*,160\\\(%r15\\\)" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "lde\t%.*,168\\\(%r15\\\)" 1 { target lp64 } } } */ -/* { dg-final { scan-assembler-times "lde\t%.*,96\\\(%r15\\\)" 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "lde\t%.*,100\\\(%r15\\\)" 1 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "lde\t%.*,160\\\(%r15\\\)" 1 } } */ +/* { dg-final { scan-assembler-times "lde\t%.*,168\\\(%r15\\\)" 1 } } */ typedef char __attribute__((vector_size(4))) v4qi; diff --git a/gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c b/gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c index 9d4d5bda8ea..b44776f2d08 100644 --- a/gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c +++ b/gcc/testsuite/gcc.target/s390/vector/vec-abi-vararg-1.c @@ -1,20 +1,15 @@ /* Check calling convention with variable argument lists in the vector ABI. */ -/* { dg-do run { target { s390*-*-* } } } */ +/* { dg-do run } */ /* { dg-require-effective-target s390_vx } */ -/* { dg-options "-O3 -mzarch -march=z13 --save-temps" } */ +/* { dg-options "-O3 -march=z13 --save-temps" } */ /* Make sure arguments are fetched from the argument overflow area. */ -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,352\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,368\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,376\\(%r15\\)" { target lp64 } } } */ -/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,392\\(%r15\\)" { target lp64 } } } */ - -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,208\\(%r15\\)" { target ilp32 } } } */ -/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,224\\(%r15\\)" { target ilp32 } } } */ -/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,232\\(%r15\\)" { target ilp32 } } } */ -/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,248\\(%r15\\)" { target ilp32 } } } */ +/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,352\\(%r15\\)" } } */ +/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,368\\(%r15\\)" } } */ +/* { dg-final { scan-assembler "vl\t%v\[0-9\]*,376\\(%r15\\)" } } */ +/* { dg-final { scan-assembler "ld\t%v\[0-9\]*,392\\(%r15\\)" } } */ #include diff --git a/gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c b/gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c index 03db4e0854f..c3da798287c 100644 --- a/gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c +++ b/gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c @@ -1,6 +1,6 @@ /* Check that we use the scalar variants of vector compares. */ -/* { dg-do compile { target { s390*-*-* } } } */ +/* { dg-do compile } */ /* { dg-options "-O3 -mzarch -march=z13 -fno-asynchronous-unwind-tables" } */ int @@ -12,8 +12,7 @@ eq (double a, double b) return a == b; } -/* { dg-final { scan-assembler "eq:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochie\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "eq:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghie\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "eq:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghie\t%r2,1" } } */ int ne (double a, double b) @@ -24,8 +23,7 @@ ne (double a, double b) return a != b; } -/* { dg-final { scan-assembler "ne:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochine\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "ne:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghine\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "ne:\n\[^:\]*\twfcdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghine\t%r2,1" } } */ int gt (double a, double b) @@ -36,8 +34,7 @@ gt (double a, double b) return a > b; } -/* { dg-final { scan-assembler "gt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochih\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "gt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghih\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "gt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghih\t%r2,1" } } */ int ge (double a, double b) @@ -48,8 +45,7 @@ ge (double a, double b) return a >= b; } -/* { dg-final { scan-assembler "ge:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochihe\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "ge:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghihe\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "ge:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghihe\t%r2,1" } } */ int lt (double a, double b) @@ -60,8 +56,7 @@ lt (double a, double b) return a < b; } -/* { dg-final { scan-assembler "lt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochil\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "lt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghil\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "lt:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghil\t%r2,1" } } */ int le (double a, double b) @@ -72,5 +67,4 @@ le (double a, double b) return a <= b; } -/* { dg-final { scan-assembler "le:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlochile\t%r2,1" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "le:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghile\t%r2,1" { target lp64 } } } */ +/* { dg-final { scan-assembler "le:\n\[^:\]*\twfkdb\t%v\[0-9\]*,%v\[0-9\]*\n\t\[^:\]+\tlocghile\t%r2,1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c b/gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c index 1c02c0c4e51..56f54d04cd3 100644 --- a/gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c +++ b/gcc/testsuite/gcc.target/s390/zero-scratch-regs-1.c @@ -14,24 +14,15 @@ void foo (void) { } /* { dg-final { scan-assembler "lghi\t%r4,0" } } */ /* { dg-final { scan-assembler "lghi\t%r5,0" } } */ -/* { dg-final { scan-assembler-times "vzero\t" 30 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times "vzero\t" 24 { target { lp64 } } } } */ +/* { dg-final { scan-assembler-times "vzero\t" 24 } } */ /* { dg-final { scan-assembler "vzero\t%v0" } } */ /* { dg-final { scan-assembler "vzero\t%v1" } } */ /* { dg-final { scan-assembler "vzero\t%v2" } } */ /* { dg-final { scan-assembler "vzero\t%v3" } } */ -/* { dg-final { scan-assembler "vzero\t%v4" { target { lp64 } } } } */ +/* { dg-final { scan-assembler "vzero\t%v4" } } */ /* { dg-final { scan-assembler "vzero\t%v5" } } */ -/* { dg-final { scan-assembler "vzero\t%v6" { target { lp64 } } } } */ +/* { dg-final { scan-assembler "vzero\t%v6" } } */ /* { dg-final { scan-assembler "vzero\t%v7" } } */ -/* { dg-final { scan-assembler "vzero\t%v8" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v9" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v10" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v11" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v12" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v13" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v14" { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler "vzero\t%v15" { target { ! lp64 } } } } */ /* { dg-final { scan-assembler "vzero\t%v16" } } */ /* { dg-final { scan-assembler "vzero\t%v17" } } */ /* { dg-final { scan-assembler "vzero\t%v18" } } */ diff --git a/gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c b/gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c index 7cd6d809ac9..a845be934ba 100644 --- a/gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c +++ b/gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c @@ -8,190 +8,166 @@ all_eq_double (vector double a, vector double b) { return vec_all_eq (a, b); } -/* { dg-final { scan-assembler-times all_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_ne_double (vector double a, vector double b) { return vec_all_ne (a, b); } -/* { dg-final { scan-assembler-times all_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochinle\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_gt_double (vector double a, vector double b) { return vec_all_gt (a, b); } -/* { dg-final { scan-assembler-times all_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_lt_double (vector double a, vector double b) { return vec_all_lt (a, b); } -/* { dg-final { scan-assembler-times all_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_ge_double (vector double a, vector double b) { return vec_all_ge (a, b); } -/* { dg-final { scan-assembler-times all_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_le_double (vector double a, vector double b) { return vec_all_le (a, b); } -/* { dg-final { scan-assembler-times all_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_eq_double (vector double a, vector double b) { return vec_any_eq (a, b); } -/* { dg-final { scan-assembler-times any_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_eq_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_ne_double (vector double a, vector double b) { return vec_any_ne (a, b); } -/* { dg-final { scan-assembler-times any_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochine\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_ne_double:\n\tvfcedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_gt_double (vector double a, vector double b) { return vec_any_gt (a, b); } -/* { dg-final { scan-assembler-times any_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_gt_double:\n\tvfchdbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_lt_double (vector double a, vector double b) { return vec_any_lt (a, b); } -/* { dg-final { scan-assembler-times any_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_lt_double:\n\tvfchdbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_ge_double (vector double a, vector double b) { return vec_any_ge (a, b); } -/* { dg-final { scan-assembler-times any_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_ge_double:\n\tvfchedbs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_le_double (vector double a, vector double b) { return vec_any_le (a, b); } -/* { dg-final { scan-assembler-times any_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_le_double:\n\tvfchedbs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_eq_int (vector int a, vector int b) { return vec_all_eq (a, b); } -/* { dg-final { scan-assembler-times all_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_ne_int (vector int a, vector int b) { return vec_all_ne (a, b); } -/* { dg-final { scan-assembler-times all_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochinle\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_gt_int (vector int a, vector int b) { return vec_all_gt (a, b); } -/* { dg-final { scan-assembler-times all_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_lt_int (vector int a, vector int b) { return vec_all_lt (a, b); } -/* { dg-final { scan-assembler-times all_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochie\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghie\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_ge_int (vector int a, vector int b) { return vec_all_ge (a, b); } -/* { dg-final { scan-assembler-times all_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochinle\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) all_le_int (vector int a, vector int b) { return vec_all_le (a, b); } -/* { dg-final { scan-assembler-times all_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochinle\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times all_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times all_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghinle\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_eq_int (vector int a, vector int b) { return vec_any_eq (a, b); } -/* { dg-final { scan-assembler-times any_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_eq_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_ne_int (vector int a, vector int b) { return vec_any_ne (a, b); } -/* { dg-final { scan-assembler-times any_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochine\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_ne_int:\n\tvceqfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_gt_int (vector int a, vector int b) { return vec_any_gt (a, b); } -/* { dg-final { scan-assembler-times any_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_gt_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_lt_int (vector int a, vector int b) { return vec_any_lt (a, b); } -/* { dg-final { scan-assembler-times any_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochile\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_lt_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghile\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_ge_int (vector int a, vector int b) { return vec_any_ge (a, b); } -/* { dg-final { scan-assembler-times any_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlhi\t%r2,0\n\tlochine\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_ge_int:\n\tvchfs\t%v\[0-9\]*,%v26,%v24\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 } } */ int __attribute__((noinline,noclone)) any_le_int (vector int a, vector int b) { return vec_any_le (a, b); } -/* { dg-final { scan-assembler-times any_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlhi\t%r2,0\n\tlochine\t%r2,1 1 { target { ! lp64 } } } } */ -/* { dg-final { scan-assembler-times any_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 { target lp64 } } } */ +/* { dg-final { scan-assembler-times any_le_int:\n\tvchfs\t%v\[0-9\]*,%v24,%v26\n\tlghi\t%r2,0\n\tlocghine\t%r2,1 1 } } */ diff --git a/libgcc/config.host b/libgcc/config.host index a685d5da7a1..7ac322289cb 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -188,7 +188,7 @@ sparc*-*-*) cpu_type=sparc tmake_file="${tmake_file} sparc/t-sparc" ;; -s390*-*-*) +s390x-*-*) cpu_type=s390 ;; # Note the 'l'; we need to be able to match e.g. "shle" or "shl". @@ -1385,20 +1385,12 @@ rx-*-linux*) tmake_file="rx/t-rx t-fdpbit" tm_file="$tm_file rx/rx-lib.h" ;; -s390-*-linux*) - tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390" - md_unwind_header=s390/linux-unwind.h - ;; s390x-*-linux*) tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390" - if test "${host_address}" = 32; then - tmake_file="${tmake_file} s390/32/t-floattodi" - else - if test "$libgcc_cv_s390_float16" = "yes"; then + if test "$libgcc_cv_s390_float16" = "yes"; then tmake_file="${tmake_file} s390/t-float16" - fi - tmake_file="${tmake_file} s390/t-softfp t-softfp" fi + tmake_file="${tmake_file} s390/t-softfp t-softfp" md_unwind_header=s390/linux-unwind.h ;; s390x-ibm-tpf*) diff --git a/libgcc/config/s390/32/_fixdfdi.c b/libgcc/config/s390/32/_fixdfdi.c deleted file mode 100644 index e4e84a6f3b7..00000000000 --- a/libgcc/config/s390/32/_fixdfdi.c +++ /dev/null @@ -1,113 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) -#define EXPONENT_BIAS 1023 -#define MANTISSA_BITS 52 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l.upper) & SIGNBIT) -#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) -#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) -#define HIDDEND_LL ((UDItype_x)1 << MANTISSA_BITS) -#define LLONG_MAX 9223372036854775807LL -#define LLONG_MIN (-LLONG_MAX - 1LL) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - double d; - struct { - SItype_x upper; - USItype_x lower; - } l; - UDItype_x ll; -}; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -DItype_x __fixdfdi (double a1); - -/* convert double to int */ -DItype_x -__fixdfdi (double a1) -{ - register union double_long dl1; - register int exp; - register DItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - if (!EXPD (dl1)) - return 0; - - /* The exponent - considered the binary point at the right end of - the mantissa. */ - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1 */ - if (exp <= -PRECISION) - return 0; - - /* NaN */ - - if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0x8000000000000000ULL; - } - - /* Number big number & +/- inf */ - if (exp >= 11) { - /* Don't throw an exception for -1p+63 */ - if (!SIGN (dl1) || exp > 11 || FRACD_LL (dl1) != 0) - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return SIGN (dl1) ? LLONG_MIN : LLONG_MAX; - } - - l = MANTD_LL(dl1); - - /* shift down until exp < 12 or l = 0 */ - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return (SIGN (dl1) ? -l : l); -} -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/_fixsfdi.c b/libgcc/config/s390/32/_fixsfdi.c deleted file mode 100644 index d6ca971b07a..00000000000 --- a/libgcc/config/s390/32/_fixsfdi.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPONENT_BIAS 127 -#define MANTISSA_BITS 23 -#define EXP(fp) (((fp.l) >> MANTISSA_BITS) & 0xFF) -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l) & SIGNBIT) -#define HIDDEN (1 << MANTISSA_BITS) -#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) -#define FRAC(fp) ((fp.l) & 0x7FFFFF) -#define LLONG_MAX 9223372036854775807LL -#define LLONG_MIN (-LLONG_MAX - 1LL) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union float_long - { - float f; - USItype_x l; - }; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -DItype_x __fixsfdi (float a1); - -/* convert double to int */ -DItype_x -__fixsfdi (float a1) -{ - register union float_long fl1; - register int exp; - register DItype_x l; - - fl1.f = a1; - - /* +/- 0, denormalized */ - if (!EXP (fl1)) - return 0; - - exp = EXP (fl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1 */ - if (exp <= -PRECISION) - return 0; - - /* NaN */ - - if ((EXP (fl1) == 0xff) && (FRAC (fl1) != 0)) /* NaN */ - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0x8000000000000000ULL; - } - - /* Number big number & +/- inf */ - if (exp >= 40) { - /* Don't throw an exception for -1p+63 */ - if (!SIGN (fl1) || exp > 40 || FRAC (fl1) != 0) - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return SIGN (fl1) ? LLONG_MIN : LLONG_MAX; - } - - l = MANT (fl1); - - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return (SIGN (fl1) ? -l : l); -} -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/_fixtfdi.c b/libgcc/config/s390/32/_fixtfdi.c deleted file mode 100644 index 546261cefb4..00000000000 --- a/libgcc/config/s390/32/_fixtfdi.c +++ /dev/null @@ -1,122 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) -#define EXPONENT_BIAS 16383 -#define MANTISSA_BITS 112 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l.i[0]) & SIGNBIT) -#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) -#define MANTD_LOW_LL(fp) (fp.ll[1]) -#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) -#define HIGH_LL_FRAC_BITS 48 -#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) -#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) -#define LLONG_MAX 9223372036854775807LL -#define LLONG_MIN (-LLONG_MAX - 1LL) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - long double d; - struct { - SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ - } l; - UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ -}; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -DItype_x __fixtfdi (long double a1); - -/* convert double to unsigned int */ -DItype_x -__fixtfdi (long double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - if (!EXPD (dl1)) - return 0; - - /* The exponent - considered the binary point at the right end of - the mantissa. */ - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1: If the mantissa would need to be right-shifted more bits than - its size the result would be zero. */ - if (exp <= -PRECISION) - return 0; - - /* NaN: All exponent bits set and a nonzero fraction. */ - if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0x8000000000000000ULL; - } - - /* One extra bit is needed for the unit bit which is appended by - MANTD_HIGH_LL on the left of the matissa. */ - exp += HIGH_LL_FRAC_BITS + 1; - - /* If the result would still need a left shift it will be too large - to be represented. Compared to the unsigned variant we have to - take care that there is still space for the sign bit to be - applied. So we can only go on if there is a right-shift by one - or more. */ - if (exp >= 0) - { - /* Don't throw an exception for -1p+63 */ - if (!SIGN (dl1) - || exp > 0 - || MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) - || (dl1.ll[0] & HIGH_LL_FRAC_MASK)) - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return SIGN (dl1) ? LLONG_MIN : LLONG_MAX; - } - - l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) - | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); - - return SIGN (dl1) ? -(l >> -exp) : l >> -exp; -} -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/_fixunsdfdi.c b/libgcc/config/s390/32/_fixunsdfdi.c deleted file mode 100644 index d8fce779388..00000000000 --- a/libgcc/config/s390/32/_fixunsdfdi.c +++ /dev/null @@ -1,120 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) -#define EXPONENT_BIAS 1023 -#define MANTISSA_BITS 52 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l.upper) & SIGNBIT) -#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) -#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) -#define HIDDEND_LL ((UDItype_x)1 << 52) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - double d; - struct { - SItype_x upper; - USItype_x lower; - } l; - UDItype_x ll; -}; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -UDItype_x __fixunsdfdi (double a1); - -/* convert double to unsigned int */ -UDItype_x -__fixunsdfdi (double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - if (!EXPD (dl1)) - return 0; - - /* Negative. */ - if (SIGN (dl1)) - { - /* Value is <= -1.0 - C99 Annex F.4 requires an "invalid" exception to be thrown. */ - if (EXPD (dl1) >= EXPONENT_BIAS) - fexceptdiv (0.0, 0.0); - return 0; - } - - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1 */ - - if (exp < -PRECISION) - return 0; - - /* NaN */ - - if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0x0ULL; - } - - /* Number big number & + inf */ - - if (exp >= 12) - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0xFFFFFFFFFFFFFFFFULL; - } - - l = MANTD_LL(dl1); - - /* shift down until exp < 12 or l = 0 */ - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return l; -} -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/_fixunssfdi.c b/libgcc/config/s390/32/_fixunssfdi.c deleted file mode 100644 index 6d8ccc1ea03..00000000000 --- a/libgcc/config/s390/32/_fixunssfdi.c +++ /dev/null @@ -1,114 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPONENT_BIAS 127 -#define MANTISSA_BITS 23 -#define EXP(fp) (((fp.l) >> MANTISSA_BITS) & 0xFF) -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l) & SIGNBIT) -#define HIDDEN (1 << MANTISSA_BITS) -#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) -#define FRAC(fp) ((fp.l) & 0x7FFFFF) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union float_long - { - float f; - USItype_x l; - }; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -UDItype_x __fixunssfdi (float a1); - -/* convert float to unsigned int */ -UDItype_x -__fixunssfdi (float a1) -{ - register union float_long fl1; - register int exp; - register UDItype_x l; - - fl1.f = a1; - - /* +/- 0, denormalized */ - if (!EXP (fl1)) - return 0; - - /* Negative. */ - if (SIGN (fl1)) - { - /* Value is <= -1.0 - C99 Annex F.4 requires an "invalid" exception to be thrown. */ - if (EXP (fl1) >= EXPONENT_BIAS) - fexceptdiv (0.0, 0.0); - return 0; - } - - exp = EXP (fl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1 */ - if (exp < -24) - return 0; - - /* NaN */ - - if ((EXP (fl1) == 0xff) && (FRAC (fl1) != 0)) /* NaN */ - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0x0ULL; - } - - /* Number big number & + inf */ - - if (exp >= 41) - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0xFFFFFFFFFFFFFFFFULL; - } - - l = MANT (fl1); - - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return l; -} -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/_fixunstfdi.c b/libgcc/config/s390/32/_fixunstfdi.c deleted file mode 100644 index f306fa1a3b8..00000000000 --- a/libgcc/config/s390/32/_fixunstfdi.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2026 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 3, or (at your option) any later -version. - -GCC is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -. */ - -#ifndef __s390x__ - -#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) -#define EXPONENT_BIAS 16383 -#define MANTISSA_BITS 112 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGND(fp) ((fp.l.i[0]) & SIGNBIT) -#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) -#define MANTD_LOW_LL(fp) (fp.ll[1]) -#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) -#define HIGH_LL_FRAC_BITS 48 -#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) -#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - long double d; - struct { - SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ - } l; - UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ -}; - -static __inline__ void -fexceptdiv (float d, float e) -{ - __asm__ __volatile__ ("debr %0,%1" : : "f" (d), "f" (e) ); -} - -UDItype_x __fixunstfdi (long double a1); - -/* convert double to unsigned int */ -UDItype_x -__fixunstfdi (long double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - if (!EXPD (dl1)) - return 0; - - /* Negative. */ - if (SIGND (dl1)) - { - /* Value is <= -1.0 - C99 Annex F.4 requires an "invalid" exception to be thrown. */ - if (EXPD (dl1) >= EXPONENT_BIAS) - fexceptdiv (0.0, 0.0); - return 0; - } - - /* The exponent - considered the binary point at the right end of - the mantissa. */ - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1: If the mantissa would need to be right-shifted more bits than - its size (plus the implied one bit on the left) the result would be - zero. */ - if (exp <= -PRECISION) - return 0; - - /* NaN: All exponent bits set and a nonzero fraction. */ - if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0; - } - - /* One extra bit is needed for the unit bit which is appended by - MANTD_HIGH_LL on the left of the matissa. */ - exp += HIGH_LL_FRAC_BITS + 1; - - /* If the result would still need a left shift it will be too - large to be represented. Infinities have all exponent bits set - and will end up here as well. */ - if (exp > 0) - { - /* C99 Annex F.4 requires an "invalid" exception to be thrown. */ - fexceptdiv (0.0, 0.0); - return 0xFFFFFFFFFFFFFFFFULL; - } - - l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) - | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); - - return l >> -exp; -} - -#endif /* !__s390x__ */ diff --git a/libgcc/config/s390/32/t-floattodi b/libgcc/config/s390/32/t-floattodi deleted file mode 100644 index 4bd87b1f888..00000000000 --- a/libgcc/config/s390/32/t-floattodi +++ /dev/null @@ -1,5 +0,0 @@ -floattodi-functions = _fixsfdi _fixdfdi _fixtfdi _fixunssfdi _fixunsdfdi _fixunstfdi -LIB2FUNCS_EXCLUDE += $(floattodi-functions) - -floattodi-src = $(addsuffix .c, $(floattodi-functions)) -LIB2ADD = $(addprefix $(srcdir)/config/s390/32/, $(floattodi-src)) diff --git a/libgcc/config/s390/libgcc-glibc.ver b/libgcc/config/s390/libgcc-glibc.ver index 8170506e5cc..c0d74901d12 100644 --- a/libgcc/config/s390/libgcc-glibc.ver +++ b/libgcc/config/s390/libgcc-glibc.ver @@ -26,39 +26,6 @@ # because GLIBC_2.0 does not exist on this architecture, as the first # ever glibc release on the platform was GLIBC_2.2. -%ifndef __s390x__ -%exclude { - __divdi3 - __moddi3 - __udivdi3 - __umoddi3 - __register_frame - __register_frame_table - __deregister_frame - __register_frame_info - __deregister_frame_info - __frame_state_for - __register_frame_info_table -} - -%inherit GCC_3.0 GLIBC_2.0 -GLIBC_2.0 { - __divdi3 - __moddi3 - __udivdi3 - __umoddi3 - - __register_frame - __register_frame_table - __deregister_frame - __register_frame_info - __deregister_frame_info - __frame_state_for - __register_frame_info_table -} -%endif - -%ifdef __s390x__ %exclude { __register_frame __register_frame_table @@ -79,7 +46,6 @@ GLIBC_2.2 { __frame_state_for __register_frame_info_table } -%endif # With GCC 4.1.0 long double 128 bit support was introduced. The # following symbols coming from libgcc are enabled when -mlong-double-128 @@ -103,19 +69,11 @@ GCC_4.1.0 { __multc3 __powitf2 -%ifdef __s390x__ __fixtfti __fixunstfti __floattitf - -%else - __fixtfdi - __fixunstfdi - __floatditf -%endif } -%ifdef __s390x__ %inherit GCC_16.0.0 GCC_4.1.0 GCC_16.0.0 { __mulbitint3 @@ -138,4 +96,3 @@ GCC_16.0.0 { __floattihf __floatuntihf } -%endif diff --git a/libgcc/config/s390/morestack.S b/libgcc/config/s390/morestack.S index cc8ee6430e3..80458f9afeb 100644 --- a/libgcc/config/s390/morestack.S +++ b/libgcc/config/s390/morestack.S @@ -41,205 +41,6 @@ __morestack: .LFB1: .cfi_startproc - -#ifndef __s390x__ - - -# The 31-bit __morestack function. - - # We use a cleanup to restore the stack guard if an exception - # is thrown through this code. -#ifndef __PIC__ - .cfi_personality 0,__gcc_personality_v0 - .cfi_lsda 0,.LLSDA1 -#else - .cfi_personality 0x9b,DW.ref.__gcc_personality_v0 - .cfi_lsda 0x1b,.LLSDA1 -#endif - - stm %r2, %r15, 0x8(%r15) # Save %r2-%r15. - .cfi_offset %r6, -0x48 - .cfi_offset %r7, -0x44 - .cfi_offset %r8, -0x40 - .cfi_offset %r9, -0x3c - .cfi_offset %r10, -0x38 - .cfi_offset %r11, -0x34 - .cfi_offset %r12, -0x30 - .cfi_offset %r13, -0x2c - .cfi_offset %r14, -0x28 - .cfi_offset %r15, -0x24 - lr %r11, %r15 # Make frame pointer for vararg. - .cfi_def_cfa_register %r11 - ahi %r15, -0x60 # 0x60 for standard frame. - st %r11, 0(%r15) # Save back chain. - lr %r8, %r0 # Save %r0 (static chain). - lr %r10, %r1 # Save %r1 (address of parameter block). - - l %r7, 0(%r10) # Required frame size to %r7 - ear %r1, %a0 # Extract thread pointer. - l %r1, 0x20(%r1) # Get stack bounduary - ar %r1, %r7 # Stack bounduary + frame size - a %r1, 4(%r10) # + stack param size - clr %r1, %r15 # Compare with current stack pointer - jle .Lnoalloc # guard > sp - frame-size: need alloc - - brasl %r14, __morestack_block_signals - - # We abuse one of caller's fpr save slots (which we don't use for fprs) - # as a local variable. Not needed here, but done to be consistent with - # the below use. - ahi %r7, BACKOFF # Bump requested size a bit. - st %r7, 0x40(%r11) # Stuff frame size on stack. - la %r2, 0x40(%r11) # Pass its address as parameter. - la %r3, 0x60(%r11) # Caller's stack parameters. - l %r4, 4(%r10) # Size of stack parameters. - brasl %r14, __generic_morestack - - lr %r15, %r2 # Switch to the new stack. - ahi %r15, -0x60 # Make a stack frame on it. - st %r11, 0(%r15) # Save back chain. - - s %r2, 0x40(%r11) # The end of stack space. - ahi %r2, BACKOFF # Back off a bit. - ear %r1, %a0 # Extract thread pointer. -.LEHB0: - st %r2, 0x20(%r1) # Save the new stack boundary. - - brasl %r14, __morestack_unblock_signals - - lr %r0, %r8 # Static chain. - lm %r2, %r6, 0x8(%r11) # Paremeter registers. - - # Third parameter is address of function meat - address of parameter - # block. - a %r10, 0x8(%r10) - - # Leave vararg pointer in %r1, in case function uses it - la %r1, 0x60(%r11) - - # State of registers: - # %r0: Static chain from entry. - # %r1: Vararg pointer. - # %r2-%r6: Parameters from entry. - # %r7-%r10: Indeterminate. - # %r11: Frame pointer (%r15 from entry). - # %r12-%r13: Indeterminate. - # %r14: Return address. - # %r15: Stack pointer. - basr %r14, %r10 # Call our caller. - - stm %r2, %r3, 0x8(%r11) # Save return registers. - - brasl %r14, __morestack_block_signals - - # We need a stack slot now, but have no good way to get it - the frame - # on new stack had to be exactly 0x60 bytes, or stack parameters would - # be passed wrong. Abuse fpr save area in caller's frame (we don't - # save actual fprs). - la %r2, 0x40(%r11) - brasl %r14, __generic_releasestack - - s %r2, 0x40(%r11) # Subtract available space. - ahi %r2, BACKOFF # Back off a bit. - ear %r1, %a0 # Extract thread pointer. -.LEHE0: - st %r2, 0x20(%r1) # Save the new stack boundary. - - # We need to restore the old stack pointer before unblocking signals. - # We also need 0x60 bytes for a stack frame. Since we had a stack - # frame at this place before the stack switch, there's no need to - # write the back chain again. - lr %r15, %r11 - ahi %r15, -0x60 - - brasl %r14, __morestack_unblock_signals - - lm %r2, %r15, 0x8(%r11) # Restore all registers. - .cfi_remember_state - .cfi_restore %r15 - .cfi_restore %r14 - .cfi_restore %r13 - .cfi_restore %r12 - .cfi_restore %r11 - .cfi_restore %r10 - .cfi_restore %r9 - .cfi_restore %r8 - .cfi_restore %r7 - .cfi_restore %r6 - .cfi_def_cfa_register %r15 - br %r14 # Return to caller's caller. - -# Executed if no new stack allocation is needed. - -.Lnoalloc: - .cfi_restore_state - # We may need to copy stack parameters. - l %r9, 0x4(%r10) # Load stack parameter size. - ltr %r9, %r9 # And check if it's 0. - je .Lnostackparm # Skip the copy if not needed. - sr %r15, %r9 # Make space on the stack. - la %r8, 0x60(%r15) # Destination. - la %r12, 0x60(%r11) # Source. - lr %r13, %r9 # Source size. -.Lcopy: - mvcle %r8, %r12, 0 # Copy. - jo .Lcopy - -.Lnostackparm: - # Third parameter is address of function meat - address of parameter - # block. - a %r10, 0x8(%r10) - - # Leave vararg pointer in %r1, in case function uses it - la %r1, 0x60(%r11) - - # OK, no stack allocation needed. We still follow the protocol and - # call our caller - it doesn't cost much and makes sure vararg works. - # No need to set any registers here - %r0 and %r2-%r6 weren't modified. - basr %r14, %r10 # Call our caller. - - lm %r6, %r15, 0x18(%r11) # Restore all callee-saved registers. - .cfi_remember_state - .cfi_restore %r15 - .cfi_restore %r14 - .cfi_restore %r13 - .cfi_restore %r12 - .cfi_restore %r11 - .cfi_restore %r10 - .cfi_restore %r9 - .cfi_restore %r8 - .cfi_restore %r7 - .cfi_restore %r6 - .cfi_def_cfa_register %r15 - br %r14 # Return to caller's caller. - -# This is the cleanup code called by the stack unwinder when unwinding -# through the code between .LEHB0 and .LEHE0 above. - -.L1: - .cfi_restore_state - lr %r2, %r11 # Stack pointer after resume. - brasl %r14, __generic_findstack - lr %r3, %r11 # Get the stack pointer. - sr %r3, %r2 # Subtract available space. - ahi %r3, BACKOFF # Back off a bit. - ear %r1, %a0 # Extract thread pointer. - st %r3, 0x20(%r1) # Save the new stack boundary. - - # We need GOT pointer in %r12 for PLT entry. - larl %r12,_GLOBAL_OFFSET_TABLE_ - lr %r2, %r6 # Exception header. -#ifdef __PIC__ - brasl %r14, _Unwind_Resume@PLT -#else - brasl %r14, _Unwind_Resume -#endif - -#else /* defined(__s390x__) */ - - -# The 64-bit __morestack function. - # We use a cleanup to restore the stack guard if an exception # is thrown through this code. #ifndef __PIC__ @@ -434,8 +235,6 @@ __morestack: brasl %r14, _Unwind_Resume #endif -#endif /* defined(__s390x__) */ - .cfi_endproc .size __morestack, . - __morestack @@ -492,23 +291,6 @@ DW.ref.__gcc_personality_v0: __stack_split_initialize: -#ifndef __s390x__ - - ear %r1, %a0 - lr %r0, %r15 - ahi %r0, -0x4000 # We should have at least 16K. - st %r0, 0x20(%r1) - - lr %r2, %r15 - lhi %r3, 0x4000 -#ifdef __PIC__ - jg __generic_morestack_set_initial_sp@PLT # Tail call -#else - jg __generic_morestack_set_initial_sp # Tail call -#endif - -#else /* defined(__s390x__) */ - ear %r1, %a0 sllg %r1, %r1, 32 ear %r1, %a1 @@ -524,8 +306,6 @@ __stack_split_initialize: jg __generic_morestack_set_initial_sp # Tail call #endif -#endif /* defined(__s390x__) */ - .size __stack_split_initialize, . - __stack_split_initialize # Routines to get and set the guard, for __splitstack_getcontext, @@ -540,15 +320,10 @@ __stack_split_initialize: __morestack_get_guard: -#ifndef __s390x__ - ear %r1, %a0 - l %r2, 0x20(%r1) -#else ear %r1, %a0 sllg %r1, %r1, 32 ear %r1, %a1 lg %r2, 0x38(%r1) -#endif br %r14 .size __morestack_get_guard, . - __morestack_get_guard @@ -561,15 +336,10 @@ __morestack_get_guard: __morestack_set_guard: -#ifndef __s390x__ - ear %r1, %a0 - st %r2, 0x20(%r1) -#else ear %r1, %a0 sllg %r1, %r1, 32 ear %r1, %a1 stg %r2, 0x38(%r1) -#endif br %r14 .size __morestack_set_guard, . - __morestack_set_guard @@ -583,13 +353,8 @@ __morestack_set_guard: __morestack_make_guard: -#ifndef __s390x__ - sr %r2, %r3 - ahi %r2, BACKOFF -#else sgr %r2, %r3 aghi %r2, BACKOFF -#endif br %r14 .size __morestack_make_guard, . - __morestack_make_guard @@ -602,15 +367,9 @@ __morestack_make_guard: .section .ctors.65535,"aw",@progbits #endif -#ifndef __LP64__ - .align 4 - .long __stack_split_initialize - .long __morestack_load_mmap -#else .align 8 .quad __stack_split_initialize .quad __morestack_load_mmap -#endif .section .note.GNU-stack,"",@progbits .section .note.GNU-split-stack,"",@progbits diff --git a/libgcc/config/s390/sfp-machine.h b/libgcc/config/s390/sfp-machine.h index cd818645d96..870dd1cc5f0 100644 --- a/libgcc/config/s390/sfp-machine.h +++ b/libgcc/config/s390/sfp-machine.h @@ -21,10 +21,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ -#if ! __s390x__ -# error "soft-fp implemented for s390x only" -#endif - #define _FP_W_TYPE_SIZE 64 #define _FP_W_TYPE unsigned long long #define _FP_WS_TYPE signed long long diff --git a/libgcc/configure b/libgcc/configure index 6f4845b59ee..3d7d65d2eca 100755 --- a/libgcc/configure +++ b/libgcc/configure @@ -5336,7 +5336,7 @@ $as_echo "$libgcc_cv_powerpc_3_1_float128_hw" >&6; } esac case ${host} in -s390*-*-linux*) +s390x-*-linux*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking Support float16 on s390" >&5 $as_echo_n "checking Support float16 on s390... " >&6; } if ${libgcc_cv_s390_float16+:} false; then : diff --git a/libgcc/configure.ac b/libgcc/configure.ac index a76e1e9943a..70b10ac31ef 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -480,7 +480,7 @@ powerpc*-*-linux*) esac case ${host} in -s390*-*-linux*) +s390x-*-linux*) AC_CACHE_CHECK([Support float16 on s390], [libgcc_cv_s390_float16], [AC_COMPILE_IFELSE( diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c index 96dddad5820..d136f64da18 100644 --- a/libgcc/generic-morestack.c +++ b/libgcc/generic-morestack.c @@ -990,8 +990,6 @@ __splitstack_find (void *segment_arg, void *sp, size_t *len, #elif defined __powerpc64__ #elif defined __s390x__ nsp -= 2 * 160; -#elif defined __s390__ - nsp -= 2 * 96; #else #error "unrecognized target" #endif diff --git a/libgm2/configure.host b/libgm2/configure.host index b96a37cab17..3e094da15fe 100644 --- a/libgm2/configure.host +++ b/libgm2/configure.host @@ -332,9 +332,6 @@ case "${host}" in powerpc64*) abi_baseline_pair=powerpc64-linux-gnu ;; - s390) - abi_baseline_pair=s390-linux-gnu - ;; s390x) abi_baseline_pair=s390x-linux-gnu ;; diff --git a/libitm/config/s390/sjlj.S b/libitm/config/s390/sjlj.S index 053be863750..e814246cc4d 100644 --- a/libitm/config/s390/sjlj.S +++ b/libitm/config/s390/sjlj.S @@ -33,7 +33,6 @@ /* _ITM_beginTransaction (int props); props -> r2 */ _ITM_beginTransaction: cfi_startproc -#ifdef __s390x__ lgr %r3,%r15 /* backup stack pointer */ aghi %r15,-304 /* jump buffer (144) + reg save area (160) */ cfi_adjust_cfa_offset(304) @@ -53,22 +52,6 @@ _ITM_beginTransaction: aghi %r15,304 cfi_adjust_cfa_offset(-304) br %r1 -#else - lr %r3,%r15 /* backup stack pointer */ - ahi %r15,-152 /* jump buffer (56) + reg save area (96) */ - cfi_adjust_cfa_offset(152) - stm %r6,%r14,96(%r15) - st %r3,36+96(%r15) /* store the old stack pointer */ - std %f4,40+96(%r15) - std %f6,48+96(%r15) - la %r3,96(%r15) /* second argument to GTM_begin_transaction */ - /* begin_transaction (uint32_t prop, const gtm_jmpbuf *jb) */ - brasl %r14,GTM_begin_transaction /* requires mzarch */ - l %r1,32+96(%r15) - ahi %r15,152 - cfi_adjust_cfa_offset(-152) - br %r1 -#endif cfi_endproc .size _ITM_beginTransaction, .-_ITM_beginTransaction @@ -84,7 +67,6 @@ GTM_longjmp: _ITM_beginTransaction (r2). Third parameter is ignored for now. */ cfi_startproc -#ifdef __s390x__ ld %f8,80(%r3) ld %f9,88(%r3) ld %f10,96(%r3) @@ -95,12 +77,6 @@ GTM_longjmp: ld %f15,136(%r3) lmg %r6,%r15,0(%r3) br %r14 -#else - ld %f4,40(%r3) - ld %f6,48(%r3) - lm %r6,%r15,0(%r3) - br %r14 -#endif cfi_endproc .size GTM_longjmp, .-GTM_longjmp diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index e52a32bb4c6..74c979923bf 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -336,9 +336,6 @@ case "${host}" in powerpc64*) abi_baseline_pair=powerpc64-linux-gnu ;; - s390) - abi_baseline_pair=s390-linux-gnu - ;; s390x) abi_baseline_pair=s390x-linux-gnu ;;