Hi Hongtao, This was due to a bug in our bisection scripts. I've disabled notifications to patch authors and linaro-toolchain@ while I'm testing the fix.
Sorry for the noise. -- Maxim Kuvyrkov https://www.linaro.org > On Jul 12, 2021, at 10:25 AM, Liu, Hongtao <hongtao....@intel.com> wrote: > > > >> -----Original Message----- >> From: ci_not...@linaro.org <ci_not...@linaro.org> >> Sent: Sunday, July 11, 2021 9:59 PM >> To: tcwg-validat...@linaro.org; Liu, Hongtao <hongtao....@intel.com>; linaro- >> toolch...@lists.linaro.org >> Subject: [CI-NOTIFY]: TCWG Bisect tcwg_cross/gnu-master-aarch64- >> build_cross - Build # 35 - Successful! >> >> Successfully identified regression in *glibc* in CI configuration >> tcwg_cross/gnu-master-aarch64-build_cross. So far, this commit has >> regressed CI configurations: >> - tcwg_cross/gnu-master-aarch64-build_cross >> >> Culprit: >> <cut> >> commit 6ec6c77867af4ddfec7323e0ac6ede89effca852 >> Author: liuhongt <hongtao....@intel.com> >> Date: Wed Jul 7 10:07:59 2021 +0800 >> >> soft-fp: Add __extendhfsf2/__extendhfdf2, __truncsfhf2/__truncdfhf2, >> __eqhf2/__nehf2 >> >> 1. Add __extendhfdf2/__extendhfsf2 to return an IEEE half converted to >> IEEE double/single. >> 2. Add __truncdfhf2/__extendsfhf2 to truncate IEEE double/single into IEEE >> half. >> 3. Add __eqhf2/__nehf2 to return 0 if a == b and a,b are not NAN, >> otherwise return 1. >> >> These are needed by x86 _Float16: >> >> https://software.intel.com/content/www/us/en/develop/download/intel- >> avx512-fp16-architecture-specification.html >> >> support in GCC. >> </cut> >> >> Results regressed to (for first_bad == >> 6ec6c77867af4ddfec7323e0ac6ede89effca852) >> # reset_artifacts: >> -10 >> # true: >> 0 >> # build_abe binutils: >> 1 >> # build_abe stage1: >> 2 >> # build_abe linux: >> 3 >> # First few build errors in logs: >> # 00:00:14 make[2]: *** [/home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/start.o] Error 1 # 00:00:14 make[2]: *** >> [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux- >> gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:499: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/start.os] Error 1 # 00:00:14 make[2]: >> *** >> [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux- >> gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/crtn.o] Error 1 # 00:00:14 make[2]: *** >> [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux- >> gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/crti.o] Error 1 # 00:00:14 make[2]: *** >> [../o-iterator.mk:9: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/check_fds.o] Error 1 # 00:00:14 make[2]: >> *** [../o-iterator.mk:9: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/check_fds.os] Error 1 # >> 00:00:14 ../sysdeps/aarch64/nptl/tls.h:91:19: error: >> ‘__builtin_thread_pointer’ >> is not supported on this target # 00:00:14 make[2]: *** [/home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/sysd-rules:485: /home/tcwg- >> buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64- >> linux-gnu/glibc-glibc.git~master/csu/libc-tls.o] Error 1 # >> 00:00:14 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid >> register name for ‘_x0’ >> # 00:00:14 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid >> register name for ‘_x8’ > I'm not sure why adding hf soft-fp resulted in such error, anyone can help > look into it? >> >> from (for last_good == b46cfcef3f7dab8e90729c6616ac1420f2642245) >> # reset_artifacts: >> -10 >> # true: >> 0 >> # build_abe binutils: >> 1 >> # build_abe stage1: >> 2 >> # build_abe linux: >> 3 >> # build_abe glibc: >> 4 >> # build_abe stage2: >> 5 >> # build_abe qemu: >> 6 >> >> Artifacts of last_good build: >> https://ci.linaro.org/job/tcwg_cross-bisect-gnu- >> master-aarch64-build_cross/35/artifact/artifacts/build- >> b46cfcef3f7dab8e90729c6616ac1420f2642245/ >> Artifacts of first_bad build: >> https://ci.linaro.org/job/tcwg_cross-bisect-gnu- >> master-aarch64-build_cross/35/artifact/artifacts/build- >> 6ec6c77867af4ddfec7323e0ac6ede89effca852/ >> Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master- >> aarch64-build_cross/35/ >> >> Configuration details: >> >> >> Reproduce builds: >> <cut> >> mkdir investigate-glibc-6ec6c77867af4ddfec7323e0ac6ede89effca852 >> cd investigate-glibc-6ec6c77867af4ddfec7323e0ac6ede89effca852 >> >> git clone https://git.linaro.org/toolchain/jenkins-scripts >> >> mkdir -p artifacts/manifests >> curl -o artifacts/manifests/build-baseline.sh >> https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64- >> build_cross/35/artifact/artifacts/manifests/build-baseline.sh --fail curl -o >> artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross- >> bisect-gnu-master-aarch64-build_cross/35/artifact/artifacts/manifests/build- >> parameters.sh --fail curl -o artifacts/test.sh >> https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64- >> build_cross/35/artifact/artifacts/test.sh --fail chmod +x artifacts/test.sh >> >> # Reproduce the baseline build (build all pre-requisites) ./jenkins- >> scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh >> >> cd glibc >> >> # Reproduce first_bad build >> git checkout --detach 6ec6c77867af4ddfec7323e0ac6ede89effca852 >> ../artifacts/test.sh >> >> # Reproduce last_good build >> git checkout --detach b46cfcef3f7dab8e90729c6616ac1420f2642245 >> ../artifacts/test.sh >> >> cd .. >> </cut> >> >> History of pending regressions and results: >> https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro- >> local/ci/tcwg_cross/gnu-master-aarch64-build_cross >> >> Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64- >> build_cross/35/artifact/artifacts/ >> Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64- >> build_cross/35/consoleText >> >> Full commit (up to 1000 lines): >> <cut> >> commit 6ec6c77867af4ddfec7323e0ac6ede89effca852 >> Author: liuhongt <hongtao....@intel.com> >> Date: Wed Jul 7 10:07:59 2021 +0800 >> >> soft-fp: Add __extendhfsf2/__extendhfdf2, __truncsfhf2/__truncdfhf2, >> __eqhf2/__nehf2 >> >> 1. Add __extendhfdf2/__extendhfsf2 to return an IEEE half converted to >> IEEE double/single. >> 2. Add __truncdfhf2/__extendsfhf2 to truncate IEEE double/single into IEEE >> half. >> 3. Add __eqhf2/__nehf2 to return 0 if a == b and a,b are not NAN, >> otherwise return 1. >> >> These are needed by x86 _Float16: >> >> https://software.intel.com/content/www/us/en/develop/download/intel- >> avx512-fp16-architecture-specification.html >> >> support in GCC. >> --- >> soft-fp/eqhf2.c | 49 >> +++++++++++++++++++++++++++++++++++++++++++++++ >> soft-fp/extendhfdf2.c | 53 >> +++++++++++++++++++++++++++++++++++++++++++++++++++ >> soft-fp/extendhfsf2.c | 49 >> +++++++++++++++++++++++++++++++++++++++++++++++ >> soft-fp/half.h | 2 ++ >> soft-fp/truncdfhf2.c | 52 >> ++++++++++++++++++++++++++++++++++++++++++++++++++ >> soft-fp/truncsfhf2.c | 48 >> ++++++++++++++++++++++++++++++++++++++++++++++ >> 6 files changed, 253 insertions(+) >> >> diff --git a/soft-fp/eqhf2.c b/soft-fp/eqhf2.c new file mode 100644 index >> 0000000000..6d6634e5c5 >> --- /dev/null >> +++ b/soft-fp/eqhf2.c >> @@ -0,0 +1,49 @@ >> +/* Software floating-point emulation. >> + Return 0 iff a == b, 1 otherwise >> + Copyright (C) 2021 Free Software Foundation, Inc. >> + This file is part of the GNU C Library. >> + >> + The GNU C Library is free software; you can redistribute it and/or >> + modify it under the terms of the GNU Lesser General Public >> + License as published by the Free Software Foundation; either >> + version 2.1 of the License, or (at your option) any later version. >> + >> + In addition to the permissions in the GNU Lesser General Public >> + License, the Free Software Foundation gives you unlimited >> + permission to link the compiled version of this file into >> + combinations with other programs, and to distribute those >> + combinations without any restriction coming from the use of this >> + file. (The Lesser General Public License restrictions do apply in >> + other respects; for example, they cover modification of the file, >> + and distribution when not linked into a combine executable.) >> + >> + The GNU C Library 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 >> + Lesser General Public License for more details. >> + >> + You should have received a copy of the GNU Lesser General Public >> + License along with the GNU C Library; if not, see >> + <http://www.gnu.org/licenses/>. */ >> + >> +#include "soft-fp.h" >> +#include "half.h" >> + >> +CMPtype >> +__eqhf2 (HFtype a, HFtype b) >> +{ >> + FP_DECL_EX; >> + FP_DECL_H (A); >> + FP_DECL_H (B); >> + CMPtype r; >> + >> + FP_INIT_EXCEPTIONS; >> + FP_UNPACK_RAW_H (A, a); >> + FP_UNPACK_RAW_H (B, b); >> + FP_CMP_EQ_H (r, A, B, 1); >> + FP_HANDLE_EXCEPTIONS; >> + >> + return r; >> +} >> + >> +strong_alias (__eqhf2, __nehf2); >> diff --git a/soft-fp/extendhfdf2.c b/soft-fp/extendhfdf2.c new file mode >> 100644 index 0000000000..337ba791d4 >> --- /dev/null >> +++ b/soft-fp/extendhfdf2.c >> @@ -0,0 +1,53 @@ >> +/* Software floating-point emulation. >> + Return an IEEE half converted to IEEE double >> + Copyright (C) 2021 Free Software Foundation, Inc. >> + This file is part of the GNU C Library. >> + >> + The GNU C Library is free software; you can redistribute it and/or >> + modify it under the terms of the GNU Lesser General Public >> + License as published by the Free Software Foundation; either >> + version 2.1 of the License, or (at your option) any later version. >> + >> + In addition to the permissions in the GNU Lesser General Public >> + License, the Free Software Foundation gives you unlimited >> + permission to link the compiled version of this file into >> + combinations with other programs, and to distribute those >> + combinations without any restriction coming from the use of this >> + file. (The Lesser General Public License restrictions do apply in >> + other respects; for example, they cover modification of the file, >> + and distribution when not linked into a combine executable.) >> + >> + The GNU C Library 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 >> + Lesser General Public License for more details. >> + >> + You should have received a copy of the GNU Lesser General Public >> + License along with the GNU C Library; if not, see >> + <http://www.gnu.org/licenses/>. */ >> + >> +#define FP_NO_EXACT_UNDERFLOW >> +#include "soft-fp.h" >> +#include "half.h" >> +#include "double.h" >> + >> +DFtype >> +__extendhfdf2 (HFtype a) >> +{ >> + FP_DECL_EX; >> + FP_DECL_H (A); >> + FP_DECL_D (R); >> + DFtype r; >> + >> + FP_INIT_EXCEPTIONS; >> + FP_UNPACK_RAW_H (A, a); >> +#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D >> + FP_EXTEND (D, H, 2, 1, R, A); >> +#else >> + FP_EXTEND (D, H, 1, 1, R, A); >> +#endif >> + FP_PACK_RAW_D (r, R); >> + FP_HANDLE_EXCEPTIONS; >> + >> + return r; >> +} >> diff --git a/soft-fp/extendhfsf2.c b/soft-fp/extendhfsf2.c new file mode >> 100644 index 0000000000..a02f46d9a9 >> --- /dev/null >> +++ b/soft-fp/extendhfsf2.c >> @@ -0,0 +1,49 @@ >> +/* Software floating-point emulation. >> + Return an IEEE half converted to IEEE single >> + Copyright (C) 2021 Free Software Foundation, Inc. >> + This file is part of the GNU C Library. >> + >> + The GNU C Library is free software; you can redistribute it and/or >> + modify it under the terms of the GNU Lesser General Public >> + License as published by the Free Software Foundation; either >> + version 2.1 of the License, or (at your option) any later version. >> + >> + In addition to the permissions in the GNU Lesser General Public >> + License, the Free Software Foundation gives you unlimited >> + permission to link the compiled version of this file into >> + combinations with other programs, and to distribute those >> + combinations without any restriction coming from the use of this >> + file. (The Lesser General Public License restrictions do apply in >> + other respects; for example, they cover modification of the file, >> + and distribution when not linked into a combine executable.) >> + >> + The GNU C Library 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 >> + Lesser General Public License for more details. >> + >> + You should have received a copy of the GNU Lesser General Public >> + License along with the GNU C Library; if not, see >> + <http://www.gnu.org/licenses/>. */ >> + >> +#define FP_NO_EXACT_UNDERFLOW >> +#include "soft-fp.h" >> +#include "half.h" >> +#include "single.h" >> + >> +SFtype >> +__extendhfsf2 (HFtype a) >> +{ >> + FP_DECL_EX; >> + FP_DECL_H (A); >> + FP_DECL_S (R); >> + SFtype r; >> + >> + FP_INIT_EXCEPTIONS; >> + FP_UNPACK_RAW_H (A, a); >> + FP_EXTEND (S, H, 1, 1, R, A); >> + FP_PACK_RAW_S (r, R); >> + FP_HANDLE_EXCEPTIONS; >> + >> + return r; >> +} >> diff --git a/soft-fp/half.h b/soft-fp/half.h index ca2c1fad03..70af2712fc >> 100644 >> --- a/soft-fp/half.h >> +++ b/soft-fp/half.h >> @@ -167,4 +167,6 @@ union _FP_UNION_H >> #define _FP_FRAC_HIGH_RAW_H(X) _FP_FRAC_HIGH_1 (X) >> #define _FP_FRAC_HIGH_DW_H(X) _FP_FRAC_HIGH_1 (X) >> >> +#define FP_CMP_EQ_H(r, X, Y, ex) _FP_CMP_EQ (H, 1, (r), X, Y, (ex)) >> + >> #endif /* !SOFT_FP_HALF_H */ >> diff --git a/soft-fp/truncdfhf2.c b/soft-fp/truncdfhf2.c new file mode 100644 >> index 0000000000..8bcb278769 >> --- /dev/null >> +++ b/soft-fp/truncdfhf2.c >> @@ -0,0 +1,52 @@ >> +/* Software floating-point emulation. >> + Truncate IEEE double into IEEE half. >> + Copyright (C) 2021 Free Software Foundation, Inc. >> + This file is part of the GNU C Library. >> + >> + The GNU C Library is free software; you can redistribute it and/or >> + modify it under the terms of the GNU Lesser General Public >> + License as published by the Free Software Foundation; either >> + version 2.1 of the License, or (at your option) any later version. >> + >> + In addition to the permissions in the GNU Lesser General Public >> + License, the Free Software Foundation gives you unlimited >> + permission to link the compiled version of this file into >> + combinations with other programs, and to distribute those >> + combinations without any restriction coming from the use of this >> + file. (The Lesser General Public License restrictions do apply in >> + other respects; for example, they cover modification of the file, >> + and distribution when not linked into a combine executable.) >> + >> + The GNU C Library 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 >> + Lesser General Public License for more details. >> + >> + You should have received a copy of the GNU Lesser General Public >> + License along with the GNU C Library; if not, see >> + <http://www.gnu.org/licenses/>. */ >> + >> +#include "soft-fp.h" >> +#include "half.h" >> +#include "double.h" >> + >> +HFtype >> +__truncdfhf2 (DFtype a) >> +{ >> + FP_DECL_EX; >> + FP_DECL_D (A); >> + FP_DECL_H (R); >> + HFtype r; >> + >> + FP_INIT_ROUNDMODE; >> + FP_UNPACK_SEMIRAW_D (A, a); >> +#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D >> + FP_TRUNC (H, D, 1, 2, R, A); >> +#else >> + FP_TRUNC (H, D, 1, 1, R, A); >> +#endif >> + FP_PACK_SEMIRAW_H (r, R); >> + FP_HANDLE_EXCEPTIONS; >> + >> + return r; >> +} >> diff --git a/soft-fp/truncsfhf2.c b/soft-fp/truncsfhf2.c new file mode 100644 >> index 0000000000..25bee29f7f >> --- /dev/null >> +++ b/soft-fp/truncsfhf2.c >> @@ -0,0 +1,48 @@ >> +/* Software floating-point emulation. >> + Truncate IEEE single into IEEE half. >> + Copyright (C) 2021 Free Software Foundation, Inc. >> + This file is part of the GNU C Library. >> + >> + The GNU C Library is free software; you can redistribute it and/or >> + modify it under the terms of the GNU Lesser General Public >> + License as published by the Free Software Foundation; either >> + version 2.1 of the License, or (at your option) any later version. >> + >> + In addition to the permissions in the GNU Lesser General Public >> + License, the Free Software Foundation gives you unlimited >> + permission to link the compiled version of this file into >> + combinations with other programs, and to distribute those >> + combinations without any restriction coming from the use of this >> + file. (The Lesser General Public License restrictions do apply in >> + other respects; for example, they cover modification of the file, >> + and distribution when not linked into a combine executable.) >> + >> + The GNU C Library 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 >> + Lesser General Public License for more details. >> + >> + You should have received a copy of the GNU Lesser General Public >> + License along with the GNU C Library; if not, see >> + <http://www.gnu.org/licenses/>. */ >> + >> +#include "soft-fp.h" >> +#include "half.h" >> +#include "single.h" >> + >> +HFtype >> +__truncsfhf2 (SFtype a) >> +{ >> + FP_DECL_EX; >> + FP_DECL_S (A); >> + FP_DECL_H (R); >> + HFtype r; >> + >> + FP_INIT_ROUNDMODE; >> + FP_UNPACK_SEMIRAW_S (A, a); >> + FP_TRUNC (H, S, 1, 1, R, A); >> + FP_PACK_SEMIRAW_H (r, R); >> + FP_HANDLE_EXCEPTIONS; >> + >> + return r; >> +} >> </cut> > _______________________________________________ > linaro-toolchain mailing list > linaro-toolchain@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/linaro-toolchain _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain