New issue
Advanced search Search tips

Issue 849251 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 845798



Sign in to add a comment

blink_platform_unittests VectorMathTest fail in Win Clang ToT builds

Project Member Reported by h...@chromium.org, Jun 4 2018

Issue description

They seem to fail across all Windows bots. Here is one:
https://ci.chromium.org/buildbot/chromium.clang/ToTWin%28dll%29/775
 

Comment 1 by h...@chromium.org, Jun 4 2018

I think this is the first failing build:
https://ci.chromium.org/buildbot/chromium.clang/ToTWin%28dll%29/775
Clang 333805

I think this is the last good one:
https://ci.chromium.org/buildbot/chromium.clang/ToTWin64/1566
Clang 333779

Comment 2 by h...@chromium.org, Jun 4 2018

Why do we only see this on Windows?


Suspects:

------------------------------------------------------------------------
r333782 | spatel | 2018-06-01 21:23:18 +0200 (Fri, 01 Jun 2018) | 13 lines

[InstCombine] fix vector shuffle transform to replace undef elements (PR37648)

This bug:
https://bugs.llvm.org/show_bug.cgi?id=37648
...was created with the enhancement to this transform with rL332479.

The urem test shows the disaster potential: any undef divisor lane makes
the whole op undef.

The test diffs show that vector demanded elements turns some of the potential, 
but not all, unused binop operands back into undef already.


------------------------------------------------------------------------


------------------------------------------------------------------------
r333783 | karka | 2018-06-01 21:34:35 +0200 (Fri, 01 Jun 2018) | 16 lines

[ConstantFold] Disallow folding vector geps into bitcasts

Summary:
Getelementptr returns a vector of pointers, instead of a single address,
when one or more of its arguments is a vector. In such case it is not
possible to simplify the expression by inserting a bitcast of operand(0)
into the destination type, as it will create a bitcast between different
sizes.

Reviewers: majnemer, mkuper, mssimpso, spatel

Reviewed By: spatel

Subscribers: lebedev.ri, llvm-commits

Differential Revision: https://reviews.llvm.org/D46379
------------------------------------------------------------------------

------------------------------------------------------------------------
r333800 | ctopper | 2018-06-02 00:28:28 +0200 (Sat, 02 Jun 2018) | 1 line

[X86] Add isel patterns to use vexpand with zero masking when the passthru value is a zero vector.
------------------------------------------------------------------------


------------------------------------------------------------------------
r333804 | ctopper | 2018-06-02 00:59:07 +0200 (Sat, 02 Jun 2018) | 3 lines

[X86] Do something sensible when an expand load intrinsic is passed a 0 mask.

Previously we just returned undef, but really we should be returning the pass thru input. We also need to make sure we preserve the chain output that the original intrinsic node had to maintain connectivity in the DAG. So we should just return the incoming chain as the output chain.
------------------------------------------------------------------------

Comment 3 by h...@chromium.org, Jun 4 2018

Repros locally with LLVM at r333782:


blink_platform_unittests.exe --gtest_filter=VectorMathTest.Vmul
IMPORTANT DEBUGGING NOTE: batches of tests are run inside their
own process. For debugging a test inside a debugger, use the
--gtest_filter=<your_test_name> flag along with
--single-process-tests.
Using sharding settings from environment. This is shard 0/1
Using 1 parallel jobs.
Note: Google Test filter = VectorMathTest.Vmul
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from VectorMathTest
[ RUN      ] VectorMathTest.Vmul
Received fatal exception EXCEPTION_ACCESS_VIOLATION
Backtrace:
        blink::VectorMath::AVX::Vmul [0x00007FFB926655F0+97] (C:\src\chromium\src\third_party\blink\renderer\platform\audio\cpu\x86\vector_math_impl.h:222)
        blink::VectorMath::Vmul [0x00007FFB92447751+309] (C:\src\chromium\src\third_party\blink\renderer\platform\audio\vector_math.cc:151)
        blink::VectorMath::`anonymous namespace'::VectorMathTest_Vmul_Test::TestBody [0x00007FF7479B0BB2+298] (C:\src\chromium\src\third_party\blink\renderer\platform\audio\vector_math_test.cc:363)
        testing::Test::Run [0x00007FF747D55CCD+199] (C:\src\chromium\src\third_party\googletest\src\googletest\src\gtest.cc:2498)
        testing::TestInfo::Run [0x00007FF747D5665B+223] (C:\src\chromium\src\third_party\googletest\src\googletest\src\gtest.cc:2671)
        testing::TestCase::Run [0x00007FF747D56BD1+259] (C:\src\chromium\src\third_party\googletest\src\googletest\src\gtest.cc:2784)
        testing::internal::UnitTestImpl::RunAllTests [0x00007FF747D5DF01+641] (C:\src\chromium\src\third_party\googletest\src\googletest\src\gtest.cc:5046)
        testing::UnitTest::Run [0x00007FF747D5DB8C+168] (C:\src\chromium\src\third_party\googletest\src\googletest\src\gtest.cc:4663)
        base::TestSuite::Run [0x00007FF7481E037E+120] (C:\src\chromium\src\base\test\test_suite.cc:275)
        `anonymous namespace'::runTestSuite [0x00007FF747D24EDA+10] (C:\src\chromium\src\third_party\blink\renderer\platform\testing\run_all_tests.cc:44)
        base::OnceCallback<int ()>::Run [0x00007FF7481EC33F+55] (C:\src\chromium\src\base\callback.h:96)
        base::`anonymous namespace'::LaunchUnitTestsInternal [0x00007FF7481EB4FE+331] (C:\src\chromium\src\base\test\launcher\unit_test_launcher.cc:225)
        base::LaunchUnitTests [0x00007FF7481EB388+172] (C:\src\chromium\src\base\test\launcher\unit_test_launcher.cc:576)
        main [0x00007FF747D24E86+258] (C:\src\chromium\src\third_party\blink\renderer\platform\testing\run_all_tests.cc:62)
        __scrt_common_main_seh [0x00007FF7482A345C+268] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283)
        BaseThreadInitThunk [0x00007FFBB6168364+20]
        RtlUserThreadStart [0x00007FFBB62770B1+33]
[1/1] VectorMathTest.Vmul (CRASHED)
1 test crashed:
    VectorMathTest.Vmul (../../third_party/blink/renderer/platform/audio/vector_math_test.cc:354)
Tests took 0 seconds.

Comment 4 by h...@chromium.org, Jun 4 2018

I have to head out for today. If someone in the US has cycles to look at this, please go ahead, otherwise I'll resume in the morning.
Maybe triggered by rnk changing the clang tot bots to 64-bit recently (see  issue 844398 ), and not by an upstream change.

Comment 6 by r...@chromium.org, Jun 4 2018

> Maybe triggered by rnk changing the clang tot bots to 64-bit recently (see  issue 844398 ), and not by an upstream change.

This isn't ASan-specific, though, right? It's all ToT bots, non-ASan, 32-bit and 64-bit?

I'll try to reproduce this this afternoon.

Comment 7 by r...@chromium.org, Jun 4 2018

The most interesting AVX-related change is r333800 by Craig Topper:
[X86] Add isel patterns to use vexpand with zero masking when the passthru value is a zero vector.

Comment 8 by r...@chromium.org, Jun 4 2018

I was using the blame range:
good: 333779
bad:  333806

Comment 9 by r...@chromium.org, Jun 4 2018

It was actually rjmccall in r333791: Cap "voluntary" vector alignment at 16 for all Darwin platforms

Comment 10 by r...@chromium.org, Jun 4 2018

Revert is in: r333958

This build picked it up: https://ci.chromium.org/buildbot/chromium.clang/ToTWin/1618

Comment 11 by h...@chromium.org, Jun 5 2018

Owner: r...@chromium.org
Status: Fixed (was: Assigned)
Thanks! Bots looking good.

Sign in to add a comment