<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - __msa_fill_w() fails"
   href="https://bugs.llvm.org/show_bug.cgi?id=34006">34006</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>__msa_fill_w() fails
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>LLVM Codegen
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>fbarchard@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=18879" name="attach_18879" title="source file fom libyuv row_msa.cc">attachment 18879</a> <a href="attachment.cgi?id=18879&action=edit" title="source file fom libyuv row_msa.cc">[details]</a></span>
source file fom libyuv row_msa.cc

#define ST_B(RTYPE, in, pdst) *((RTYPE*)(pdst)) = (in) /* NOLINT */
#define ST_UB(...) ST_B(v16u8, __VA_ARGS__)

void ARGBSetRow_MSA(uint8* dst_argb, uint32 v32, int width) {
  int x;
  v16u8 dst0 = (v16u8)__msa_fill_w(v32);

  for (x = 0; x < width; x += 4) {
    ST_UB(dst0, dst_argb);
    dst_argb += 16;
  }
}

This is what gcc produces:

Disassembly of section .text.ARGBSetRow_MSA:

0000000000000000 <ARGBSetRow_MSA>:
   0:   7b02281e        fill.w  $w0,a1
   4:   0000102d        move    v0,zero

0000000000000008 <.L390>:
   8:   58460000        bgec    v0,a2,c <.L390+0x4>
   c:   78002024        st.b    $w0,0(a0)
  10:   24420004        addiu   v0,v0,4
  14:   10000000        b       18 <.L390+0x10>
  18:   64840010        daddiu  a0,a0,16

000000000000001c <.L394>:
  1c:   d81f0000        jrc     ra

./src/third_party/llvm-build/Release+Asserts/bin/clang --version
clang version 6.0.0 (trunk 308728)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
/media/fbarchard/ssd/build/libyuv/src/third_party/llvm-build/Release+Asserts/bin

This is the first part of the error before core dump.  See attached

../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF
obj/libyuv_msa/row_msa.o.d -DV8_DEPRECATION_WARNINGS -DUSE_OPENSSL_CERTS=1
-DNO_TCMALLOC -DDISABLE_NACL -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD
-DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"308728-3\"
-D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H
-DANDROID_NDK_VERSION_ROLL=r12b_1 -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DCOMPONENT_BUILD -D__GNU_SOURCE=1
-D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan
-Dsnprintf=snprintf -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0
-I../.. -Igen -I../../include -fno-strict-aliasing --param=ssp-buffer-size=4
-fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__=
-D__TIMESTAMP__= -funwind-tables -fPIC -pipe -fcolor-diagnostics
-ffunction-sections -fno-short-enums -fintegrated-as
--target=mips64el-linux-androideabi --target=mips64el-linux-android
-march=mips64el -mcpu=mips64r6 -mmsa -mfp64 -Wall -Werror -Wextra
-Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing
-Wno-covered-switch-default -Wno-unneeded-internal-declaration
-Wno-inconsistent-missing-override -Wno-undefined-var-template
-Wno-nonportable-include-path -Wno-address-of-packed-member
-Wno-unused-lambda-capture -Wno-user-defined-warnings -Oz -fno-ident
-fdata-sections -ffunction-sections -fomit-frame-pointer -g2
--sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-mips64
-fvisibility=hidden -Xclang -load -Xclang
../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so
-Xclang -add-plugin -Xclang find-bad-constructs -Xclang
-plugin-arg-find-bad-constructs -Xclang check-auto-raw-pointer -Xclang
-plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene
-Wstring-conversion -Wtautological-overlap-compare -std=gnu++11 -fno-rtti
-isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include
-isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include
-isystem../../third_party/android_tools/ndk/sources/android/support/include
-fno-exceptions -fvisibility-inlines-hidden -c ../../source/row_msa.cc -o
obj/libyuv_msa/row_msa.o
clang:
/b/build/slave/linux_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:614:
void getCopyToPartsVector(llvm::SelectionDAG &, const llvm::SDLoc &,
llvm::SDValue, llvm::SDValue *, unsigned int, llvm::MVT, const llvm::Value *,
bool): Assertion `NumRegs == NumParts && "Part count doesn't match vector
breakdown!"' failed.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>