------- Comment #4 from jvdelisle at gcc dot gnu dot org 2008-04-26 04:27 ------- This problem is worse then thought. It also extends to the SUM intrinsic which uses a similar code pattern. When MASK is a scalar and false the code that should traverse the destination array and set the values to 1 for PRODUCT and 0 for SUM just flat does not do that. It does not traverse each element of the return array (dest)
for (n = 0; n < rank; n++) dest[n * dstride] = 1 ; Also the rank is set to the source array rank rather than the return array array rank, which is also wrong. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35993