On 07.05.21 18:35, Andrew Stubbs wrote:
TImode has always been a problem on amdgcn, and now it is causing many new test failures, so I'm disabling it.
Does still still work with libgomp? The patch sounds as if it might cause problems, but on the other hand, I assume you did test it? To recall: The problem is that OpenMP's depobj as implemented in GCC has sizeof() = 2*sizeof(void*) and is implemented as a two-element struct in C/C++. But the OpenMP spec mandates that it is an integer type in Fortran, i.e. integer(kind=omp_depend_kind). Combining the impl choice and the type requirements that means that on 64bit systems, this requires __int128 support, cf. commit https://gcc.gnu.org/g:8d0b2b33748014ee57973c1d7bc9fd7706bb3da9 and https://gcc.gnu.org/PR96306 (Side note: The definition in OpenMP is bad - it should have been some opaque derived type but that's a mistake done in OpenMP 5.0.) Tobias
The mode only has move instructions defined, which was enough for SLP, but any other code trying to use it without checking the optabs is a problem. The mode remains available for use within the backend, which is important because at least one hardware instruction uses a TImode value with two DImode values packed inside.
----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf