# Copyright 2010-2012 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}" "" ] != "" } {
    untested ${testfile}.exp
    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 type } {
  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} ${alttype} ${size}
  check_type  ${name} ${type} ${alttype}
  check_sizeof ${name} ${size}
  check_access ${name} ${alttype}
}

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}
