binutils-gdb/gdb/testsuite/gdb.opencl/vec_comps.exp

391 lines
17 KiB
Plaintext
Raw Normal View History

# Copyright 2010-2018 Free Software Foundation, Inc.
# This program 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 of the License, or
# (at your option) any later version.
#
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */
#
# Contributed by Ken Werner <ken.werner@de.ibm.com>.
#
# Tests component access of OpenCL vectors.
load_lib opencl.exp
if { [skip_opencl_tests] } {
return 0
}
set testfile "vec_comps"
set clprogram [remote_download target ${srcdir}/${subdir}/${testfile}.cl]
# Compile the generic OpenCL host app
if { [gdb_compile_opencl_hostapp "${clprogram}" "${testfile}" "" ] != "" } {
Fix more cases of improper test names I noticed more occurrences of improper test names. The rather mechanical, tedious and large patch below addresses, hopefully, most of the leftover cases. As usual, another pair of eyes is welcome to check if missed something or did an invalid substitution. This patch also fixes the prepare_for_testing calls to pass proper test names. gdb/testsuite/ChangeLog: 2016-12-23 Luis Machado <lgustavo@codesourcery.com> Fix test names for the following files: * gdb.ada/exec_changed.exp * gdb.ada/info_types.exp * gdb.arch/aarch64-atomic-inst.exp * gdb.arch/aarch64-fp.exp * gdb.arch/altivec-abi.exp * gdb.arch/altivec-regs.exp * gdb.arch/amd64-byte.exp * gdb.arch/amd64-disp-step.exp * gdb.arch/amd64-dword.exp * gdb.arch/amd64-entry-value-inline.exp * gdb.arch/amd64-entry-value-param.exp * gdb.arch/amd64-entry-value-paramref.exp * gdb.arch/amd64-entry-value.exp * gdb.arch/amd64-i386-address.exp * gdb.arch/amd64-invalid-stack-middle.exp * gdb.arch/amd64-invalid-stack-top.exp * gdb.arch/amd64-optimout-repeat.exp * gdb.arch/amd64-prologue-skip.exp * gdb.arch/amd64-prologue-xmm.exp * gdb.arch/amd64-stap-special-operands.exp * gdb.arch/amd64-stap-wrong-subexp.exp * gdb.arch/amd64-tailcall-cxx.exp * gdb.arch/amd64-tailcall-noret.exp * gdb.arch/amd64-tailcall-ret.exp * gdb.arch/amd64-tailcall-self.exp * gdb.arch/amd64-word.exp * gdb.arch/arm-bl-branch-dest.exp * gdb.arch/arm-disp-step.exp * gdb.arch/arm-neon.exp * gdb.arch/arm-single-step-kernel-helper.exp * gdb.arch/avr-flash-qualifier.exp * gdb.arch/disp-step-insn-reloc.exp * gdb.arch/e500-abi.exp * gdb.arch/e500-regs.exp * gdb.arch/ftrace-insn-reloc.exp * gdb.arch/i386-avx512.exp * gdb.arch/i386-bp_permanent.exp * gdb.arch/i386-byte.exp * gdb.arch/i386-cfi-notcurrent.exp * gdb.arch/i386-disp-step.exp * gdb.arch/i386-dr3-watch.exp * gdb.arch/i386-float.exp * gdb.arch/i386-gnu-cfi.exp * gdb.arch/i386-mpx-map.exp * gdb.arch/i386-mpx-sigsegv.exp * gdb.arch/i386-mpx-simple_segv.exp * gdb.arch/i386-mpx.exp * gdb.arch/i386-permbkpt.exp * gdb.arch/i386-prologue.exp * gdb.arch/i386-signal.exp * gdb.arch/i386-size-overlap.exp * gdb.arch/i386-unwind.exp * gdb.arch/i386-word.exp * gdb.arch/mips-fcr.exp * gdb.arch/powerpc-d128-regs.exp * gdb.arch/powerpc-stackless.exp * gdb.arch/ppc64-atomic-inst.exp * gdb.arch/s390-stackless.exp * gdb.arch/s390-tdbregs.exp * gdb.arch/s390-vregs.exp * gdb.arch/sparc-sysstep.exp * gdb.arch/thumb-bx-pc.exp * gdb.arch/thumb-singlestep.exp * gdb.arch/thumb2-it.exp * gdb.arch/vsx-regs.exp * gdb.asm/asm-source.exp * gdb.base/a2-run.exp * gdb.base/advance.exp * gdb.base/all-bin.exp * gdb.base/anon.exp * gdb.base/args.exp * gdb.base/arithmet.exp * gdb.base/async-shell.exp * gdb.base/async.exp * gdb.base/attach-pie-noexec.exp * gdb.base/attach-twice.exp * gdb.base/auto-load.exp * gdb.base/bang.exp * gdb.base/bitfields.exp * gdb.base/break-always.exp * gdb.base/break-caller-line.exp * gdb.base/break-entry.exp * gdb.base/break-inline.exp * gdb.base/break-on-linker-gcd-function.exp * gdb.base/break-probes.exp * gdb.base/break.exp * gdb.base/breakpoint-shadow.exp * gdb.base/call-ar-st.exp * gdb.base/call-sc.exp * gdb.base/call-signal-resume.exp * gdb.base/call-strs.exp * gdb.base/callfuncs.exp * gdb.base/catch-fork-static.exp * gdb.base/catch-gdb-caused-signals.exp * gdb.base/catch-load.exp * gdb.base/catch-signal-fork.exp * gdb.base/catch-signal.exp * gdb.base/catch-syscall.exp * gdb.base/charset.exp * gdb.base/checkpoint.exp * gdb.base/chng-syms.exp * gdb.base/code-expr.exp * gdb.base/code_elim.exp * gdb.base/commands.exp * gdb.base/completion.exp * gdb.base/complex.exp * gdb.base/cond-expr.exp * gdb.base/condbreak.exp * gdb.base/consecutive.exp * gdb.base/continue-all-already-running.exp * gdb.base/coredump-filter.exp * gdb.base/corefile.exp * gdb.base/dbx.exp * gdb.base/debug-expr.exp * gdb.base/define.exp * gdb.base/del.exp * gdb.base/disabled-location.exp * gdb.base/disasm-end-cu.exp * gdb.base/disasm-optim.exp * gdb.base/display.exp * gdb.base/duplicate-bp.exp * gdb.base/ena-dis-br.exp * gdb.base/ending-run.exp * gdb.base/enumval.exp * gdb.base/environ.exp * gdb.base/eu-strip-infcall.exp * gdb.base/eval-avoid-side-effects.exp * gdb.base/eval-skip.exp * gdb.base/exitsignal.exp * gdb.base/expand-psymtabs.exp * gdb.base/filesym.exp * gdb.base/find-unmapped.exp * gdb.base/finish.exp * gdb.base/float.exp * gdb.base/foll-exec-mode.exp * gdb.base/foll-exec.exp * gdb.base/foll-fork.exp * gdb.base/fortran-sym-case.exp * gdb.base/freebpcmd.exp * gdb.base/func-ptr.exp * gdb.base/func-ptrs.exp * gdb.base/funcargs.exp * gdb.base/gcore-buffer-overflow.exp * gdb.base/gcore-relro-pie.exp * gdb.base/gcore-relro.exp * gdb.base/gcore.exp * gdb.base/gdb1090.exp * gdb.base/gdb11530.exp * gdb.base/gdb11531.exp * gdb.base/gdb1821.exp * gdb.base/gdbindex-stabs.exp * gdb.base/gdbvars.exp * gdb.base/hbreak.exp * gdb.base/hbreak2.exp * gdb.base/included.exp * gdb.base/infcall-input.exp * gdb.base/inferior-died.exp * gdb.base/infnan.exp * gdb.base/info-macros.exp * gdb.base/info-os.exp * gdb.base/info-proc.exp * gdb.base/info-shared.exp * gdb.base/info-target.exp * gdb.base/infoline.exp * gdb.base/interp.exp * gdb.base/interrupt.exp * gdb.base/jit-reader.exp * gdb.base/jit-simple.exp * gdb.base/kill-after-signal.exp * gdb.base/kill-detach-inferiors-cmd.exp * gdb.base/label.exp * gdb.base/langs.exp * gdb.base/ldbl_e308.exp * gdb.base/line-symtabs.exp * gdb.base/linespecs.exp * gdb.base/list.exp * gdb.base/long_long.exp * gdb.base/longest-types.exp * gdb.base/maint.exp * gdb.base/max-value-size.exp * gdb.base/memattr.exp * gdb.base/mips_pro.exp * gdb.base/morestack.exp * gdb.base/moribund-step.exp * gdb.base/multi-forks.exp * gdb.base/nested-addr.exp * gdb.base/nextoverexit.exp * gdb.base/noreturn-finish.exp * gdb.base/noreturn-return.exp * gdb.base/nostdlib.exp * gdb.base/offsets.exp * gdb.base/opaque.exp * gdb.base/pc-fp.exp * gdb.base/permissions.exp * gdb.base/print-symbol-loading.exp * gdb.base/prologue-include.exp * gdb.base/psymtab.exp * gdb.base/ptype.exp * gdb.base/random-signal.exp * gdb.base/randomize.exp * gdb.base/range-stepping.exp * gdb.base/readline-ask.exp * gdb.base/recpar.exp * gdb.base/recurse.exp * gdb.base/relational.exp * gdb.base/restore.exp * gdb.base/return-nodebug.exp * gdb.base/return.exp * gdb.base/run-after-attach.exp * gdb.base/save-bp.exp * gdb.base/scope.exp * gdb.base/sect-cmd.exp * gdb.base/set-lang-auto.exp * gdb.base/set-noassign.exp * gdb.base/setvar.exp * gdb.base/sigall.exp * gdb.base/sigbpt.exp * gdb.base/siginfo-addr.exp * gdb.base/siginfo-infcall.exp * gdb.base/siginfo-obj.exp * gdb.base/siginfo.exp * gdb.base/signals-state-child.exp * gdb.base/signest.exp * gdb.base/sigstep.exp * gdb.base/sizeof.exp * gdb.base/skip.exp * gdb.base/solib-corrupted.exp * gdb.base/solib-nodir.exp * gdb.base/solib-search.exp * gdb.base/stack-checking.exp * gdb.base/stale-infcall.exp * gdb.base/stap-probe.exp * gdb.base/start.exp * gdb.base/step-break.exp * gdb.base/step-bt.exp * gdb.base/step-line.exp * gdb.base/step-over-exit.exp * gdb.base/step-over-syscall.exp * gdb.base/step-resume-infcall.exp * gdb.base/step-test.exp * gdb.base/store.exp * gdb.base/structs3.exp * gdb.base/sym-file.exp * gdb.base/symbol-without-target_section.exp * gdb.base/term.exp * gdb.base/testenv.exp * gdb.base/ui-redirect.exp * gdb.base/until.exp * gdb.base/unwindonsignal.exp * gdb.base/value-double-free.exp * gdb.base/vla-datatypes.exp * gdb.base/vla-ptr.exp * gdb.base/vla-sideeffect.exp * gdb.base/volatile.exp * gdb.base/watch-cond-infcall.exp * gdb.base/watch-cond.exp * gdb.base/watch-non-mem.exp * gdb.base/watch-read.exp * gdb.base/watch-vfork.exp * gdb.base/watchpoint-cond-gone.exp * gdb.base/watchpoint-delete.exp * gdb.base/watchpoint-hw-hit-once.exp * gdb.base/watchpoint-hw.exp * gdb.base/watchpoint-stops-at-right-insn.exp * gdb.base/watchpoints.exp * gdb.base/wchar.exp * gdb.base/whatis-exp.exp * gdb.btrace/buffer-size.exp * gdb.btrace/data.exp * gdb.btrace/delta.exp * gdb.btrace/dlopen.exp * gdb.btrace/enable.exp * gdb.btrace/exception.exp * gdb.btrace/function_call_history.exp * gdb.btrace/gcore.exp * gdb.btrace/instruction_history.exp * gdb.btrace/nohist.exp * gdb.btrace/reconnect.exp * gdb.btrace/record_goto-step.exp * gdb.btrace/record_goto.exp * gdb.btrace/rn-dl-bind.exp * gdb.btrace/segv.exp * gdb.btrace/step.exp * gdb.btrace/stepi.exp * gdb.btrace/tailcall-only.exp * gdb.btrace/tailcall.exp * gdb.btrace/tsx.exp * gdb.btrace/unknown_functions.exp * gdb.btrace/vdso.exp * gdb.compile/compile-ifunc.exp * gdb.compile/compile-ops.exp * gdb.compile/compile-print.exp * gdb.compile/compile-setjmp.exp * gdb.cp/abstract-origin.exp * gdb.cp/ambiguous.exp * gdb.cp/annota2.exp * gdb.cp/annota3.exp * gdb.cp/anon-ns.exp * gdb.cp/anon-struct.exp * gdb.cp/anon-union.exp * gdb.cp/arg-reference.exp * gdb.cp/baseenum.exp * gdb.cp/bool.exp * gdb.cp/breakpoint.exp * gdb.cp/bs15503.exp * gdb.cp/call-c.exp * gdb.cp/casts.exp * gdb.cp/chained-calls.exp * gdb.cp/class2.exp * gdb.cp/classes.exp * gdb.cp/cmpd-minsyms.exp * gdb.cp/converts.exp * gdb.cp/cp-relocate.exp * gdb.cp/cpcompletion.exp * gdb.cp/cpexprs.exp * gdb.cp/cplabel.exp * gdb.cp/cplusfuncs.exp * gdb.cp/cpsizeof.exp * gdb.cp/ctti.exp * gdb.cp/derivation.exp * gdb.cp/destrprint.exp * gdb.cp/dispcxx.exp * gdb.cp/enum-class.exp * gdb.cp/exception.exp * gdb.cp/exceptprint.exp * gdb.cp/expand-psymtabs-cxx.exp * gdb.cp/expand-sals.exp * gdb.cp/extern-c.exp * gdb.cp/filename.exp * gdb.cp/formatted-ref.exp * gdb.cp/fpointer.exp * gdb.cp/gdb1355.exp * gdb.cp/gdb2495.exp * gdb.cp/hang.exp * gdb.cp/impl-this.exp * gdb.cp/infcall-dlopen.exp * gdb.cp/inherit.exp * gdb.cp/iostream.exp * gdb.cp/koenig.exp * gdb.cp/local.exp * gdb.cp/m-data.exp * gdb.cp/m-static.exp * gdb.cp/mb-ctor.exp * gdb.cp/mb-inline.exp * gdb.cp/mb-templates.exp * gdb.cp/member-name.exp * gdb.cp/member-ptr.exp * gdb.cp/meth-typedefs.exp * gdb.cp/method.exp * gdb.cp/method2.exp * gdb.cp/minsym-fallback.exp * gdb.cp/misc.exp * gdb.cp/namelessclass.exp * gdb.cp/namespace-enum.exp * gdb.cp/namespace-nested-import.exp * gdb.cp/namespace.exp * gdb.cp/nextoverthrow.exp * gdb.cp/no-dmgl-verbose.exp * gdb.cp/non-trivial-retval.exp * gdb.cp/noparam.exp * gdb.cp/nsdecl.exp * gdb.cp/nsimport.exp * gdb.cp/nsnested.exp * gdb.cp/nsnoimports.exp * gdb.cp/nsrecurs.exp * gdb.cp/nsstress.exp * gdb.cp/nsusing.exp * gdb.cp/operator.exp * gdb.cp/oranking.exp * gdb.cp/overload-const.exp * gdb.cp/overload.exp * gdb.cp/ovldbreak.exp * gdb.cp/ovsrch.exp * gdb.cp/paren-type.exp * gdb.cp/parse-lang.exp * gdb.cp/pass-by-ref.exp * gdb.cp/pr-1023.exp * gdb.cp/pr-1210.exp * gdb.cp/pr-574.exp * gdb.cp/pr10687.exp * gdb.cp/pr12028.exp * gdb.cp/pr17132.exp * gdb.cp/pr17494.exp * gdb.cp/pr9067.exp * gdb.cp/pr9167.exp * gdb.cp/pr9631.exp * gdb.cp/printmethod.exp * gdb.cp/psmang.exp * gdb.cp/psymtab-parameter.exp * gdb.cp/ptype-cv-cp.exp * gdb.cp/ptype-flags.exp * gdb.cp/re-set-overloaded.exp * gdb.cp/ref-types.exp * gdb.cp/rtti.exp * gdb.cp/scope-err.exp * gdb.cp/shadow.exp * gdb.cp/smartp.exp * gdb.cp/static-method.exp * gdb.cp/static-print-quit.exp * gdb.cp/temargs.exp * gdb.cp/templates.exp * gdb.cp/try_catch.exp * gdb.cp/typedef-operator.exp * gdb.cp/typeid.exp * gdb.cp/userdef.exp * gdb.cp/using-crash.exp * gdb.cp/var-tag.exp * gdb.cp/virtbase.exp * gdb.cp/virtfunc.exp * gdb.cp/virtfunc2.exp * gdb.cp/vla-cxx.exp * gdb.disasm/t01_mov.exp * gdb.disasm/t02_mova.exp * gdb.disasm/t03_add.exp * gdb.disasm/t04_sub.exp * gdb.disasm/t05_cmp.exp * gdb.disasm/t06_ari2.exp * gdb.disasm/t07_ari3.exp * gdb.disasm/t08_or.exp * gdb.disasm/t09_xor.exp * gdb.disasm/t10_and.exp * gdb.disasm/t11_logs.exp * gdb.disasm/t12_bit.exp * gdb.disasm/t13_otr.exp * gdb.dlang/circular.exp * gdb.dwarf2/arr-stride.exp * gdb.dwarf2/arr-subrange.exp * gdb.dwarf2/atomic-type.exp * gdb.dwarf2/bad-regnum.exp * gdb.dwarf2/bitfield-parent-optimized-out.exp * gdb.dwarf2/callframecfa.exp * gdb.dwarf2/clztest.exp * gdb.dwarf2/corrupt.exp * gdb.dwarf2/data-loc.exp * gdb.dwarf2/dup-psym.exp * gdb.dwarf2/dw2-anon-mptr.exp * gdb.dwarf2/dw2-anonymous-func.exp * gdb.dwarf2/dw2-bad-mips-linkage-name.exp * gdb.dwarf2/dw2-bad-unresolved.exp * gdb.dwarf2/dw2-basic.exp * gdb.dwarf2/dw2-canonicalize-type.exp * gdb.dwarf2/dw2-case-insensitive.exp * gdb.dwarf2/dw2-common-block.exp * gdb.dwarf2/dw2-compdir-oldgcc.exp * gdb.dwarf2/dw2-compressed.exp * gdb.dwarf2/dw2-const.exp * gdb.dwarf2/dw2-cp-infcall-ref-static.exp * gdb.dwarf2/dw2-cu-size.exp * gdb.dwarf2/dw2-dup-frame.exp * gdb.dwarf2/dw2-entry-value.exp * gdb.dwarf2/dw2-icycle.exp * gdb.dwarf2/dw2-ifort-parameter.exp * gdb.dwarf2/dw2-inline-break.exp * gdb.dwarf2/dw2-inline-param.exp * gdb.dwarf2/dw2-intercu.exp * gdb.dwarf2/dw2-intermix.exp * gdb.dwarf2/dw2-lexical-block-bare.exp * gdb.dwarf2/dw2-linkage-name-trust.exp * gdb.dwarf2/dw2-minsym-in-cu.exp * gdb.dwarf2/dw2-noloc.exp * gdb.dwarf2/dw2-op-call.exp * gdb.dwarf2/dw2-op-out-param.exp * gdb.dwarf2/dw2-opt-structptr.exp * gdb.dwarf2/dw2-param-error.exp * gdb.dwarf2/dw2-producer.exp * gdb.dwarf2/dw2-ranges-base.exp * gdb.dwarf2/dw2-ref-missing-frame.exp * gdb.dwarf2/dw2-reg-undefined.exp * gdb.dwarf2/dw2-regno-invalid.exp * gdb.dwarf2/dw2-restore.exp * gdb.dwarf2/dw2-restrict.exp * gdb.dwarf2/dw2-single-line-discriminators.exp * gdb.dwarf2/dw2-strp.exp * gdb.dwarf2/dw2-undefined-ret-addr.exp * gdb.dwarf2/dw2-unresolved.exp * gdb.dwarf2/dw2-var-zero-addr.exp * gdb.dwarf2/dw4-sig-types.exp * gdb.dwarf2/dwz.exp * gdb.dwarf2/dynarr-ptr.exp * gdb.dwarf2/enum-type.exp * gdb.dwarf2/gdb-index.exp * gdb.dwarf2/implptr-64bit.exp * gdb.dwarf2/implptr-optimized-out.exp * gdb.dwarf2/implptr.exp * gdb.dwarf2/implref-array.exp * gdb.dwarf2/implref-const.exp * gdb.dwarf2/implref-global.exp * gdb.dwarf2/implref-struct.exp * gdb.dwarf2/mac-fileno.exp * gdb.dwarf2/main-subprogram.exp * gdb.dwarf2/member-ptr-forwardref.exp * gdb.dwarf2/method-ptr.exp * gdb.dwarf2/missing-sig-type.exp * gdb.dwarf2/nonvar-access.exp * gdb.dwarf2/opaque-type-lookup.exp * gdb.dwarf2/pieces-optimized-out.exp * gdb.dwarf2/pieces.exp * gdb.dwarf2/pr10770.exp * gdb.dwarf2/pr13961.exp * gdb.dwarf2/staticvirtual.exp * gdb.dwarf2/subrange.exp * gdb.dwarf2/symtab-producer.exp * gdb.dwarf2/trace-crash.exp * gdb.dwarf2/typeddwarf.exp * gdb.dwarf2/valop.exp * gdb.dwarf2/watch-notconst.exp * gdb.fortran/array-element.exp * gdb.fortran/charset.exp * gdb.fortran/common-block.exp * gdb.fortran/complex.exp * gdb.fortran/derived-type-function.exp * gdb.fortran/derived-type.exp * gdb.fortran/logical.exp * gdb.fortran/module.exp * gdb.fortran/multi-dim.exp * gdb.fortran/nested-funcs.exp * gdb.fortran/print-formatted.exp * gdb.fortran/subarray.exp * gdb.fortran/vla-alloc-assoc.exp * gdb.fortran/vla-datatypes.exp * gdb.fortran/vla-history.exp * gdb.fortran/vla-ptr-info.exp * gdb.fortran/vla-ptype-sub.exp * gdb.fortran/vla-ptype.exp * gdb.fortran/vla-sizeof.exp * gdb.fortran/vla-type.exp * gdb.fortran/vla-value-sub-arbitrary.exp * gdb.fortran/vla-value-sub-finish.exp * gdb.fortran/vla-value-sub.exp * gdb.fortran/vla-value.exp * gdb.fortran/whatis_type.exp * gdb.go/chan.exp * gdb.go/handcall.exp * gdb.go/hello.exp * gdb.go/integers.exp * gdb.go/methods.exp * gdb.go/package.exp * gdb.go/strings.exp * gdb.go/types.exp * gdb.go/unsafe.exp * gdb.guile/scm-arch.exp * gdb.guile/scm-block.exp * gdb.guile/scm-breakpoint.exp * gdb.guile/scm-cmd.exp * gdb.guile/scm-disasm.exp * gdb.guile/scm-equal.exp * gdb.guile/scm-frame-args.exp * gdb.guile/scm-frame-inline.exp * gdb.guile/scm-frame.exp * gdb.guile/scm-iterator.exp * gdb.guile/scm-math.exp * gdb.guile/scm-objfile.exp * gdb.guile/scm-ports.exp * gdb.guile/scm-symbol.exp * gdb.guile/scm-symtab.exp * gdb.guile/scm-value-cc.exp * gdb.guile/types-module.exp * gdb.linespec/break-ask.exp * gdb.linespec/cpexplicit.exp * gdb.linespec/explicit.exp * gdb.linespec/keywords.exp * gdb.linespec/linespec.exp * gdb.linespec/ls-dollar.exp * gdb.linespec/ls-errs.exp * gdb.linespec/skip-two.exp * gdb.linespec/thread.exp * gdb.mi/mi-async.exp * gdb.mi/mi-basics.exp * gdb.mi/mi-break.exp * gdb.mi/mi-catch-load.exp * gdb.mi/mi-cli.exp * gdb.mi/mi-cmd-param-changed.exp * gdb.mi/mi-console.exp * gdb.mi/mi-detach.exp * gdb.mi/mi-disassemble.exp * gdb.mi/mi-eval.exp * gdb.mi/mi-file-transfer.exp * gdb.mi/mi-file.exp * gdb.mi/mi-fill-memory.exp * gdb.mi/mi-inheritance-syntax-error.exp * gdb.mi/mi-linespec-err-cp.exp * gdb.mi/mi-logging.exp * gdb.mi/mi-memory-changed.exp * gdb.mi/mi-read-memory.exp * gdb.mi/mi-record-changed.exp * gdb.mi/mi-reg-undefined.exp * gdb.mi/mi-regs.exp * gdb.mi/mi-return.exp * gdb.mi/mi-reverse.exp * gdb.mi/mi-simplerun.exp * gdb.mi/mi-solib.exp * gdb.mi/mi-stack.exp * gdb.mi/mi-stepi.exp * gdb.mi/mi-syn-frame.exp * gdb.mi/mi-until.exp * gdb.mi/mi-var-block.exp * gdb.mi/mi-var-child.exp * gdb.mi/mi-var-cmd.exp * gdb.mi/mi-var-cp.exp * gdb.mi/mi-var-display.exp * gdb.mi/mi-var-invalidate.exp * gdb.mi/mi-var-list-children-invalid-grandchild.exp * gdb.mi/mi-vla-fortran.exp * gdb.mi/mi-watch.exp * gdb.mi/mi2-var-child.exp * gdb.mi/user-selected-context-sync.exp * gdb.modula2/unbounded-array.exp * gdb.multi/dummy-frame-restore.exp * gdb.multi/multi-arch-exec.exp * gdb.multi/multi-arch.exp * gdb.multi/tids.exp * gdb.multi/watchpoint-multi.exp * gdb.opencl/callfuncs.exp * gdb.opencl/convs_casts.exp * gdb.opencl/datatypes.exp * gdb.opencl/operators.exp * gdb.opencl/vec_comps.exp * gdb.opt/clobbered-registers-O2.exp * gdb.opt/inline-break.exp * gdb.opt/inline-bt.exp * gdb.opt/inline-cmds.exp * gdb.opt/inline-locals.exp * gdb.pascal/case-insensitive-symbols.exp * gdb.pascal/floats.exp * gdb.pascal/gdb11492.exp * gdb.python/lib-types.exp * gdb.python/py-arch.exp * gdb.python/py-as-string.exp * gdb.python/py-bad-printers.exp * gdb.python/py-block.exp * gdb.python/py-breakpoint-create-fail.exp * gdb.python/py-breakpoint.exp * gdb.python/py-caller-is.exp * gdb.python/py-cmd.exp * gdb.python/py-explore-cc.exp * gdb.python/py-explore.exp * gdb.python/py-finish-breakpoint.exp * gdb.python/py-finish-breakpoint2.exp * gdb.python/py-frame-args.exp * gdb.python/py-frame-inline.exp * gdb.python/py-frame.exp * gdb.python/py-framefilter-mi.exp * gdb.python/py-infthread.exp * gdb.python/py-lazy-string.exp * gdb.python/py-linetable.exp * gdb.python/py-mi-events.exp * gdb.python/py-mi-objfile.exp * gdb.python/py-mi.exp * gdb.python/py-objfile.exp * gdb.python/py-pp-integral.exp * gdb.python/py-pp-maint.exp * gdb.python/py-pp-re-notag.exp * gdb.python/py-pp-registration.exp * gdb.python/py-recurse-unwind.exp * gdb.python/py-strfns.exp * gdb.python/py-symbol.exp * gdb.python/py-symtab.exp * gdb.python/py-sync-interp.exp * gdb.python/py-typeprint.exp * gdb.python/py-unwind-maint.exp * gdb.python/py-unwind.exp * gdb.python/py-value-cc.exp * gdb.python/py-xmethods.exp * gdb.reverse/amd64-tailcall-reverse.exp * gdb.reverse/break-precsave.exp * gdb.reverse/break-reverse.exp * gdb.reverse/consecutive-precsave.exp * gdb.reverse/consecutive-reverse.exp * gdb.reverse/finish-precsave.exp * gdb.reverse/finish-reverse-bkpt.exp * gdb.reverse/finish-reverse.exp * gdb.reverse/fstatat-reverse.exp * gdb.reverse/getresuid-reverse.exp * gdb.reverse/i386-precsave.exp * gdb.reverse/i386-reverse.exp * gdb.reverse/i386-sse-reverse.exp * gdb.reverse/i387-env-reverse.exp * gdb.reverse/i387-stack-reverse.exp * gdb.reverse/insn-reverse.exp * gdb.reverse/machinestate-precsave.exp * gdb.reverse/machinestate.exp * gdb.reverse/next-reverse-bkpt-over-sr.exp * gdb.reverse/pipe-reverse.exp * gdb.reverse/readv-reverse.exp * gdb.reverse/recvmsg-reverse.exp * gdb.reverse/rerun-prec.exp * gdb.reverse/s390-mvcle.exp * gdb.reverse/step-precsave.exp * gdb.reverse/step-reverse.exp * gdb.reverse/time-reverse.exp * gdb.reverse/until-precsave.exp * gdb.reverse/until-reverse.exp * gdb.reverse/waitpid-reverse.exp * gdb.reverse/watch-precsave.exp * gdb.reverse/watch-reverse.exp * gdb.rust/generics.exp * gdb.rust/methods.exp * gdb.rust/modules.exp * gdb.rust/simple.exp * gdb.server/connect-with-no-symbol-file.exp * gdb.server/ext-attach.exp * gdb.server/ext-restart.exp * gdb.server/ext-wrapper.exp * gdb.server/file-transfer.exp * gdb.server/server-exec-info.exp * gdb.server/server-kill.exp * gdb.server/server-mon.exp * gdb.server/wrapper.exp * gdb.stabs/exclfwd.exp * gdb.stabs/gdb11479.exp * gdb.threads/clone-new-thread-event.exp * gdb.threads/corethreads.exp * gdb.threads/current-lwp-dead.exp * gdb.threads/dlopen-libpthread.exp * gdb.threads/gcore-thread.exp * gdb.threads/sigstep-threads.exp * gdb.threads/watchpoint-fork.exp * gdb.trace/actions-changed.exp * gdb.trace/backtrace.exp * gdb.trace/change-loc.exp * gdb.trace/circ.exp * gdb.trace/collection.exp * gdb.trace/disconnected-tracing.exp * gdb.trace/ftrace.exp * gdb.trace/mi-trace-frame-collected.exp * gdb.trace/mi-trace-unavailable.exp * gdb.trace/mi-traceframe-changed.exp * gdb.trace/mi-tsv-changed.exp * gdb.trace/no-attach-trace.exp * gdb.trace/passc-dyn.exp * gdb.trace/qtro.exp * gdb.trace/range-stepping.exp * gdb.trace/read-memory.exp * gdb.trace/save-trace.exp * gdb.trace/signal.exp * gdb.trace/status-stop.exp * gdb.trace/tfile.exp * gdb.trace/trace-break.exp * gdb.trace/trace-buffer-size.exp * gdb.trace/trace-condition.exp * gdb.trace/tracefile-pseudo-reg.exp * gdb.trace/tstatus.exp * gdb.trace/unavailable.exp * gdb.trace/while-dyn.exp * gdb.trace/while-stepping.exp
2016-12-24 00:52:18 +08:00
untested "failed to compile"
return -1
}
# Load the OpenCL app
clean_restart ${testfile}
# Set breakpoint at the OpenCL kernel
gdb_test "tbreak testkernel" \
"" \
"Set pending breakpoint" \
".*Function \"testkernel\" not defined.*Make breakpoint pending.*y or \\\[n\\\]. $" \
"y"
gdb_run_cmd
gdb_test "" ".*reakpoint.*1.*testkernel.*" "run"
# Continue to the marker
gdb_breakpoint [gdb_get_line_number "marker" "${clprogram}"]
gdb_continue_to_breakpoint "marker"
# Check if the language was switched to opencl
gdb_test "show language" "The current source language is \"auto; currently opencl\"\."
# Retrieve some information about the OpenCL version and the availability of extensions
set opencl_version [get_integer_valueof "opencl_version" 0]
set have_cl_khr_fp64 [get_integer_valueof "have_cl_khr_fp64" 0]
set have_cl_khr_fp16 [get_integer_valueof "have_cl_khr_fp16" 0]
# Sanity checks
proc check_basic { name type size } {
gdb_test "ptype ${name}" "type = ${type}16"
gdb_test "p sizeof(${name})" " = [expr ${size} * 16]"
gdb_test "print/d ${name}" " = \\{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\\}"
}
proc check_type { name type alttype } {
gdb_test "whatis ${name}.lo" "type = ${type}8"
gdb_test "whatis ${name}.hi" "type = ${type}8"
gdb_test "whatis ${name}.even" "type = ${type}8"
gdb_test "whatis ${name}.odd" "type = ${type}8"
gdb_test "whatis ${name}.low" "Invalid OpenCL vector component accessor low"
gdb_test "whatis ${name}.high" "Invalid OpenCL vector component accessor high"
gdb_test "whatis ${name}.hi.even" "type = ${type}4"
gdb_test "whatis ${name}.odd.odd.lo" "type = ${type}2"
gdb_test "whatis ${name}.even.hi.lo.odd" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.x" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.y" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.z" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.w" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.v" "Invalid OpenCL vector component accessor v"
gdb_test "whatis ${name}.xy" "type = ${type}2"
gdb_test "whatis ${name}.xx" "type = ${type}2"
gdb_test "whatis ${name}.wy" "type = ${type}2"
gdb_test "whatis ${name}.zv" "Invalid OpenCL vector component accessor zv"
gdb_test "whatis ${name}.xyz" "type = ${type}3"
gdb_test "whatis ${name}.yxy" "type = ${type}3"
gdb_test "whatis ${name}.yzx" "type = ${type}3"
gdb_test "whatis ${name}.yzv" "Invalid OpenCL vector component accessor yzv"
gdb_test "whatis ${name}.xywz" "type = ${type}4"
gdb_test "whatis ${name}.zzyy" "type = ${type}4"
gdb_test "whatis ${name}.wwww" "type = ${type}4"
gdb_test "whatis ${name}.yxwv" "Invalid OpenCL vector component accessor yxwv"
gdb_test "whatis ${name}.zyxwv" "Invalid OpenCL vector component accessor zyxwv"
gdb_test "whatis ${name}.xy.x" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.wzyx.yy" "type = ${type}2"
gdb_test "whatis ${name}.wzyx.yx.x" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.xyzw.w" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.xy.z" "Invalid OpenCL vector component accessor z"
gdb_test "whatis ${name}.s0" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.s9" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.sa" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.sf" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.sF" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.sg" "Invalid OpenCL vector component accessor sg"
gdb_test "whatis ${name}.sG" "Invalid OpenCL vector component accessor sG"
gdb_test "whatis ${name}.Sg" "Invalid OpenCL vector component accessor Sg"
gdb_test "whatis ${name}.SG" "Invalid OpenCL vector component accessor SG"
gdb_test "whatis ${name}.s01" "type = ${type}2"
gdb_test "whatis ${name}.s00" "type = ${type}2"
gdb_test "whatis ${name}.sF0" "type = ${type}2"
gdb_test "whatis ${name}.S42" "type = ${type}2"
gdb_test "whatis ${name}.s567" "type = ${type}3"
gdb_test "whatis ${name}.S333" "type = ${type}3"
gdb_test "whatis ${name}.Sf0A" "type = ${type}3"
gdb_test "whatis ${name}.SB1D" "type = ${type}3"
gdb_test "whatis ${name}.s01g" "Invalid OpenCL vector component accessor s01g"
gdb_test "whatis ${name}.s9876" "type = ${type}4"
gdb_test "whatis ${name}.sFFFF" "type = ${type}4"
gdb_test "whatis ${name}.sCafe" "type = ${type}4"
gdb_test "whatis ${name}.Sf001" "type = ${type}4"
gdb_test "whatis ${name}.s1fg2" "Invalid OpenCL vector component accessor s1fg2"
gdb_test "whatis ${name}.s012345" "Invalid OpenCL vector component accessor s012345"
gdb_test "whatis ${name}.s00000000" "type = ${type}8"
gdb_test "whatis ${name}.s00224466" "type = ${type}8"
gdb_test "whatis ${name}.sDEADBEEF" "type = ${type}8"
gdb_test "whatis ${name}.Sa628c193" "type = ${type}8"
gdb_test "whatis ${name}.s876543210" "Invalid OpenCL vector component accessor s876543210"
gdb_test "whatis ${name}.s0123456789abcde" "Invalid OpenCL vector component accessor s0123456789abcde"
gdb_test "whatis ${name}.s0123456789aBcDeF" "type = ${type}16"
gdb_test "whatis ${name}.s0022446688AACCFF" "type = ${type}16"
gdb_test "whatis ${name}.S0123456776543210" "type = ${type}16"
gdb_test "whatis ${name}.sFEDCBA9876543210" "type = ${type}16"
gdb_test "whatis ${name}.sfedcba98.S0246" "type = ${type}4"
gdb_test "whatis ${name}.sfedcba98.S0246.s13" "type = ${type}2"
gdb_test "whatis ${name}.sfedcba98.S0246.s13.s0" "type = ${alttype}|${type}"
gdb_test "whatis ${name}.s0123456789abcdef.s22" "type = ${type}2"
gdb_test "whatis ${name}.hi.s7654.wx" "type = ${type}2"
gdb_test "whatis ${name}.s0123456789abcdef.even.lo" "type = ${type}4"
gdb_test "whatis ${name}.odd.xyzw.s23" "type = ${type}2"
gdb_test "whatis ${name}.xyzw.hi.odd" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.lo" "type = ${type}8"
gdb_test "ptype ${name}.hi" "type = ${type}8"
gdb_test "ptype ${name}.even" "type = ${type}8"
gdb_test "ptype ${name}.odd" "type = ${type}8"
gdb_test "ptype ${name}.hi.even" "type = ${type}4"
gdb_test "ptype ${name}.odd.odd.lo" "type = ${type}2"
gdb_test "ptype ${name}.even.hi.lo.odd" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.x" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.y" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.z" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.w" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.xy" "type = ${type}2"
gdb_test "ptype ${name}.xx" "type = ${type}2"
gdb_test "ptype ${name}.wy" "type = ${type}2"
gdb_test "ptype ${name}.xyz" "type = ${type}3"
gdb_test "ptype ${name}.yxy" "type = ${type}3"
gdb_test "ptype ${name}.yzx" "type = ${type}3"
gdb_test "ptype ${name}.xywz" "type = ${type}4"
gdb_test "ptype ${name}.zzyy" "type = ${type}4"
gdb_test "ptype ${name}.wwww" "type = ${type}4"
gdb_test "ptype ${name}.xy.x" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.wzyx.yy" "type = ${type}2"
gdb_test "ptype ${name}.wzyx.yx.x" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.xyzw.w" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.s0" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.s9" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.sa" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.sf" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.sF" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.s01" "type = ${type}2"
gdb_test "ptype ${name}.s00" "type = ${type}2"
gdb_test "ptype ${name}.sF0" "type = ${type}2"
gdb_test "ptype ${name}.S42" "type = ${type}2"
gdb_test "ptype ${name}.s567" "type = ${type}3"
gdb_test "ptype ${name}.S333" "type = ${type}3"
gdb_test "ptype ${name}.Sf0A" "type = ${type}3"
gdb_test "ptype ${name}.SB1D" "type = ${type}3"
gdb_test "ptype ${name}.s9876" "type = ${type}4"
gdb_test "ptype ${name}.sFFFF" "type = ${type}4"
gdb_test "ptype ${name}.sCafe" "type = ${type}4"
gdb_test "ptype ${name}.Sf001" "type = ${type}4"
gdb_test "ptype ${name}.s00000000" "type = ${type}8"
gdb_test "ptype ${name}.s00224466" "type = ${type}8"
gdb_test "ptype ${name}.sDEADBEEF" "type = ${type}8"
gdb_test "ptype ${name}.Sa628c193" "type = ${type}8"
gdb_test "ptype ${name}.s0123456789aBcDeF" "type = ${type}16"
gdb_test "ptype ${name}.s0022446688AACCFF" "type = ${type}16"
gdb_test "ptype ${name}.S0123456776543210" "type = ${type}16"
gdb_test "ptype ${name}.sFEDCBA9876543210" "type = ${type}16"
gdb_test "ptype ${name}.sfedcba98.S0246" "type = ${type}4"
gdb_test "ptype ${name}.sfedcba98.S0246.s13" "type = ${type}2"
gdb_test "ptype ${name}.sfedcba98.S0246.s13.s0" "type = ${alttype}|${type}"
gdb_test "ptype ${name}.s0123456789abcdef.s22" "type = ${type}2"
gdb_test "ptype ${name}.hi.s7654.wx" "type = ${type}2"
gdb_test "ptype ${name}.s0123456789abcdef.even.lo" "type = ${type}4"
gdb_test "ptype ${name}.odd.xyzw.s23" "type = ${type}2"
gdb_test "ptype ${name}.xyzw.hi.odd" "type = ${alttype}|${type}"
}
proc check_sizeof { name size } {
gdb_test "print sizeof (${name}.lo)" " = [expr $size * 8]"
gdb_test "print sizeof (${name}.hi)" " = [expr $size * 8]"
gdb_test "print sizeof (${name}.even)" " = [expr $size * 8]"
gdb_test "print sizeof (${name}.odd)" " = [expr $size * 8]"
gdb_test "print sizeof (${name}.hi.even)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.odd.odd.lo)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.even.hi.lo.odd)" " = $size"
gdb_test "print sizeof (${name}.x)" " = $size"
gdb_test "print sizeof (${name}.xy)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.xyz)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.xyzw)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.xy.x)" " = $size"
gdb_test "print sizeof (${name}.wzyx.yy)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.wzyx.yx.x)" " = $size"
gdb_test "print sizeof (${name}.xyzw.w)" " = $size"
gdb_test "print sizeof (${name}.s0)" " = $size"
gdb_test "print sizeof (${name}.s01)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.s012)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.s0123)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.s01234567)" " = [expr $size * 8]"
gdb_test "print sizeof (${name}.s0123456789abcdef)" " = [expr $size * 16]"
gdb_test "print sizeof (${name}.sfedcba98.S0246)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.sfedcba98.S0246.s13)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.sfedcba98.S0246.s13.s0)" " = $size"
gdb_test "print sizeof (${name}.s0123456789abcdef.s22)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.hi.s7654.wx)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.s0123456789abcdef.even.lo)" " = [expr $size * 4]"
gdb_test "print sizeof (${name}.odd.xyzw.s23)" " = [expr $size * 2]"
gdb_test "print sizeof (${name}.xyzw.hi.odd)" " = $size"
}
# OpenCL vector component access
proc check_access { name } {
gdb_test "print/d ${name}.lo" " = \\{0, 1, 2, 3, 4, 5, 6, 7\\}"
gdb_test "print/d ${name}.hi" " = \\{8, 9, 10, 11, 12, 13, 14, 15\\}"
gdb_test "print/d ${name}.even" " = \\{0, 2, 4, 6, 8, 10, 12, 14\\}"
gdb_test "print/d ${name}.odd" " = \\{1, 3, 5, 7, 9, 11, 13, 15\\}"
gdb_test "print/d ${name}.hi.even" " = \\{8, 10, 12, 14\\}"
gdb_test "print/d ${name}.odd.odd.lo" " = \\{3, 7\\}"
gdb_test "print/d ${name}.even.hi.lo.odd" " = 10"
gdb_test "print/d ${name}.x" " = 0"
gdb_test "print/d ${name}.y" " = 1"
gdb_test "print/d ${name}.z" " = 2"
gdb_test "print/d ${name}.w" " = 3"
gdb_test "print/d ${name}.xy" " = \\{0, 1\\}"
gdb_test "print/d ${name}.xx" " = \\{0, 0\\}"
gdb_test "print/d ${name}.wy" " = \\{3, 1\\}"
gdb_test "print/d ${name}.xyz" " = \\{0, 1, 2\\}"
gdb_test "print/d ${name}.yxy" " = \\{1, 0, 1\\}"
gdb_test "print/d ${name}.yzx" " = \\{1, 2, 0\\}"
gdb_test "print/d ${name}.xywz" " = \\{0, 1, 3, 2\\}"
gdb_test "print/d ${name}.zzyy" " = \\{2, 2, 1, 1\\}"
gdb_test "print/d ${name}.wwww" " = \\{3, 3, 3, 3\\}"
gdb_test "print/d ${name}.xy.x" " = 0"
gdb_test "print/d ${name}.wzyx.yy" " = \\{2, 2\\}"
gdb_test "print/d ${name}.wzyx.yx.x" " = 2"
gdb_test "print/d ${name}.xyzw.w" " = 3"
for {set i 0} {$i < 16} {incr i} {
gdb_test "print/d ${name}.s[format "%x" $i]" " = $i"
gdb_test "print/d ${name}.S[format "%x" $i]" " = $i"
if {$i > 9} {
gdb_test "print/d ${name}.s[format "%X" $i]" " = $i"
gdb_test "print/d ${name}.S[format "%X" $i]" " = $i"
}
}
gdb_test "print/d ${name}.s01" " = \\{0, 1\\}"
gdb_test "print/d ${name}.s00" " = \\{0, 0\\}"
gdb_test "print/d ${name}.sF0" " = \\{15, 0\\}"
gdb_test "print/d ${name}.S42" " = \\{4, 2\\}"
gdb_test "print/d ${name}.s567" " = \\{5, 6, 7\\}"
gdb_test "print/d ${name}.S333" " = \\{3, 3, 3\\}"
gdb_test "print/d ${name}.Sf0A" " = \\{15, 0, 10\\}"
gdb_test "print/d ${name}.SB1D" " = \\{11, 1, 13\\}"
gdb_test "print/d ${name}.s9876" " = \\{9, 8, 7, 6\\}"
gdb_test "print/d ${name}.sFFFF" " = \\{15, 15, 15, 15\\}"
gdb_test "print/d ${name}.sCafe" " = \\{12, 10, 15, 14\\}"
gdb_test "print/d ${name}.Sf001" " = \\{15, 0, 0, 1\\}"
gdb_test "print/d ${name}.s00000000" " = \\{0, 0, 0, 0, 0, 0, 0, 0\\}"
gdb_test "print/d ${name}.s00224466" " = \\{0, 0, 2, 2, 4, 4, 6, 6\\}"
gdb_test "print/d ${name}.sDEADBEEF" " = \\{13, 14, 10, 13, 11, 14, 14, 15\\}"
gdb_test "print/d ${name}.Sa628c193" " = \\{10, 6, 2, 8, 12, 1, 9, 3\\}"
gdb_test "print/d ${name}.s0123456789aBcDeF" " = \\{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\\}"
gdb_test "print/d ${name}.s0022446688AACCEE" " = \\{0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14\\}"
gdb_test "print/d ${name}.S0123456776543210" " = \\{0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0\\}"
gdb_test "print/d ${name}.sFEDCBA9876543210" " = \\{15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0\\}"
gdb_test "print/d ${name}.sfedcba98.S0246" " = \\{15, 13, 11, 9\\}"
gdb_test "print/d ${name}.sfedcba98.S0246.s13" " = \\{13, 9\\}"
gdb_test "print/d ${name}.sfedcba98.S0246.s13.s0" " = 13"
gdb_test "print/d ${name}.s0123456789abcdef.s22" " = \\{2, 2\\}"
gdb_test "print/d ${name}.hi.s7654.wx" " = \\{12, 15\\}"
gdb_test "print/d ${name}.s0123456789abcdef.even.lo" " = \\{0, 2, 4, 6\\}"
gdb_test "print/d ${name}.odd.xyzw.s23" " = \\{5, 7\\}"
gdb_test "print/d ${name}.xyzw.hi.odd" " = 3"
# lvalue tests
for {set i 0} {$i < 16} {incr i} {
gdb_test_no_output "set variable ${name}.s[format "%x" $i] = [expr 15 - $i]"
gdb_test "print/d ${name}.s[format "%x" $i]" " = [expr 15 - $i]"
}
gdb_test "print/d ${name}" " = \\{15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0\\}"
gdb_test_no_output "set variable ${name}.s02468ace = ${name}.s13579bdf"
gdb_test "print/d ${name}" " = \\{14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0\\}"
gdb_test_no_output "set variable ${name}.wzyx = ${name}.even.odd"
gdb_test "print/d ${name}" " = \\{0, 4, 8, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0\\}"
gdb_test_no_output "set variable ${name}.odd.lo = ${name}.hi.even"
gdb_test "print/d ${name}" " = \\{0, 6, 8, 4, 10, 2, 8, 0, 6, 6, 4, 4, 2, 2, 0, 0\\}"
gdb_test_no_output "set variable ${name}.hi.hi.hi = ${name}.lo.s1623.lo"
gdb_test "print/d ${name}" " = \\{0, 6, 8, 4, 10, 2, 8, 0, 6, 6, 4, 4, 2, 2, 6, 8\\}"
}
proc do_check { name type alttype size } {
check_basic ${name} ${type} ${size}
check_type ${name} ${type} ${alttype}
check_sizeof ${name} ${size}
check_access ${name}
}
do_check "c16" "char" "char" 1
do_check "uc16" "uchar" "unsigned char" 1
do_check "s16" "short" "short" 2
do_check "us16" "ushort" "unsigned short" 2
do_check "i16" "int" "int" 4
do_check "ui16" "uint" "unsigned int" 4
do_check "l16" "long" "long" 8
do_check "ul16" "ulong" "unsigned long" 8
if { ${have_cl_khr_fp16} } {
do_check "h16" "half" "half" 2
}
do_check "f16" "float" "float" 4
if { ${have_cl_khr_fp64} } {
do_check "d16" "double" "double" 8
}
# Delete the OpenCL program source
remote_file target delete ${clprogram}