| # Copyright 2021 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/>. |
| |
| # Test support for _Float16 parameters and return values. |
| |
| if { [skip_avx512fp16_tests] } { |
| unsupported "target does not support AVX512fp16" |
| return -1 |
| } |
| |
| standard_testfile |
| |
| if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \ |
| {debug additional_flags="-mavx512fp16"}] } { |
| return -1 |
| } |
| |
| if { ![runto_main] } { |
| return -1 |
| } |
| |
| gdb_test "p square(2.2)" "= 4\\.8359" |
| |
| set line1 [gdb_get_line_number "BP1"] |
| set line2 [gdb_get_line_number "BP2"] |
| set line3 [gdb_get_line_number "BP3"] |
| gdb_breakpoint $line1 |
| gdb_breakpoint $line3 |
| |
| gdb_continue_to_breakpoint "line1" ".*$srcfile:$line1.*" |
| |
| with_test_prefix "real" { |
| gdb_test "p num" "= 1\\.25" |
| gdb_test "ptype num" "type = _Float16" |
| gdb_test "finish" "Value returned is.*= 1\\.5625" |
| } |
| |
| gdb_continue_to_breakpoint "line3" ".*$srcfile:$line3.*" |
| gdb_test "p plus(b)" "= 8\\.75 \\+ 1\\.5i" |
| |
| gdb_breakpoint $line2 |
| gdb_continue_to_breakpoint "line2" ".*$srcfile:$line2.*" |
| |
| with_test_prefix "complex" { |
| gdb_test "p num" "= 6\\.25 \\+ 1i" |
| gdb_test "ptype num" "type = complex _Float16" |
| gdb_test "finish" "Value returned is.*= 8\\.75 \\+ 1\\.5i" |
| } |
| |
| gdb_continue_to_end |