<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/138904>138904</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Assertion failure in x86 DAG->DAG
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            backend:X86,
            crash-on-valid
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ilovepi
      </td>
    </tr>
</table>

<pre>
    We're seeing an assertion failure when building some code for Fuchsia.  We've had some other breakages in our CI, so I'm not 100% on when this showed up, but I'm guessing recently.

```C
// RUN: clang -cc1 -emit-obj -target-cpu x86-64-v2 -O3 -ftrivial-auto-var-init=pattern -vectorize-loops %s

void *a;
long b;
void *c() {
  if (b)
    return a;
}
typedef struct {
 char d[]
} e;
long f(unsigned g) {
  char *h;
  int i;
  e *j = c();
 if (g > 8)
    return 0;
  i = 0;
  for (; i < g; i += 2)
    h[i / 2] = j->d[i] + j->d[i + 1];
}
```

Error message:
```console
clang: /usr/local/google/home/paulkirth/llvm-fork/llvm/include/llvm/IR/Value.h:360: const_use_iterator llvm::Value::materialized_use_begin() const: Assertion `hasUseList()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/local/google/home/paulkirth/llvm-fork/build/bin/clang -cc1 -triple x86_64-unknown-fuchsia -emit-obj -massembler-fatal-warnings -disable-free -clear-ast-before-backend -main-file-name huf_compress.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=off -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -enable-tlsdesc -target-cpu x86-64-v2 -mllvm -x86-branches-within-32B-boundaries -tune-cpu generic -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb --compress-debug-sections=zstd -fdebug-compilation-dir=. -mllvm -crash-diagnostics-dir=clang-crashreports -ffunction-sections -fdata-sections -fcoverage-compilation-dir=. -sys-header-deps -D _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D ZX_ASSERT_LEVEL=2 -D XXH_NAMESPACE=ZSTD_ -D ZDICTLIB_VISIBILITY= -D ZSTDERRORLIB_VISIBILITY= -D ZSTDLIB_HIDDEN= -D ZSTDLIB_VISIBILITY= -D ZSTDLIB_VISIBLE= -D PLATFORM_POSIX_VERSION=200112L -D ZSTD_SETPRIORITY_SUPPORT=0 -O3 -Wall -Wextra -Wconversion -Wextra-semi -Wimplicit-fallthrough -Wnewline-eof -Wstrict-prototypes -Wwrite-strings -Wno-sign-conversion -Wno-unused-parameter -Wnonportable-system-include-path -Wno-missing-field-initializers -Wno-extra-qualification -Wno-cast-function-type-strict -Wno-cast-function-type-mismatch -Wno-unknown-warning-option -Wno-missing-template-arg-list-after-template-kw -Wno-deprecated-pragma -Wno-nontrivial-memaccess -Werror -Wthread-safety -Wno-unknown-warning-option -Wno-thread-safety-reference-return -Wno-implicit-fallthrough -Wno-conversion -Wno-unused-but-set-variable -Wno-bitwise-instead-of-logical -ffuchsia-api-level=4293918720 -std=c11 -fconst-strings -ferror-limit 19 -fvisibility=hidden -stack-protector 2 -ftrivial-auto-var-init=pattern -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -vectorize-loops -vectorize-slp -debug-info-kind=constructor -fsanitize=safe-stack -fno-sanitize-memory-param-retval -fno-sanitize-address-use-odr-indicator -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c huf_compress-e7770f.c
1. <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'huf_compress-e7770f.c'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@HUF_writeCTable_wksp'
#0 0x0000560b3f3498c6 ___interceptor_backtrace ../../../../../../llvm-llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:4513:13
#1 0x0000560b4ded743a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/paulkirth/llvm-fork/llvm/lib/Support/Unix/Signals.inc:808:8
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykWN1u47gOfhr1hlDg2PlpL3rh1slOgE5bJJnpnL0xZJu2NZUlH0lOp_P0B5STNrOzxQJniyKxSYo_EvmRinBONhrxms1v2Dy7EINvjb2WyhywlxeFqV6vn5DFS4vgEKVuQGgQzqH10miohVSDRXhpUUMxSFWRiDMdQmkqhNpYWA9l66SYAARNB4RWVKOM8S1aKCyKZ9GgA6nBDBZuNyy-BWdgw-JlB9p4mEYRi-dg9GjKt9KBa80LVjD0JF0M_ijeDOgcuWGxRO3V64RFKf0vovH_ll7iNYvXsP1yz5IUSiV0A7wsp8Cxk56b4jtwL2yDnpf9AD8uF3wx44cY-EMCvPZWHqRQXAze8IOwXGrpWZL1wnu0GvgBS2-s_IlcGdM7YPHcjW4cjKyAxalgyQ2LUmV0A8X4fGKVLL5k8RWwJVEBZA0svixYfBVeASz6wWo4qmDLjEWpf-2xwhqct0PpT2vLVlioxtMdRQHPDNcsvhx0yIEKmnObYSGL03aUBpDagzy9ILG-A0syODp75IyuNsCSFVz-5nD0piwsfXulNCE1yU3g3EJzfIxvSC5-V9Sy-Q3R1xCzeRa0fOcsWVGIMlDimzNKeJ1S7Gc79ZYI44GsrDUWOnRONMiSX1KlNNoZhSxKQ4pQrrB4PTjL4rUypVAsXjfGNApZvG5NR1-9GNSztL4lGXXoeG3s8_GZxWupSzVU-E7YbFm8_irUgJOWJWmyiEJKGu18PjjMpUcrvLEQ5JOUJWmQHh874dFKoeRPrIJ4gY3UxwQKSkhb-laxbBG1wn1xeCedPx5dvAyFjBVVyuPdKt2twA1FJz0IKAaqpN5YD95A633vyHKon0b6digmpenewwkh99Z8x9JTuM4N6OjAhK7gGDz4FqG0wrVQiPLZW1EiFXFvsbemROeQEGKwI5lWCudMKYXHCuygwZVW9p783XlRPkM1dP14dtEEwt-jNY0VHQjbDB1q7_7V4QVso2_a2_U5Xngre4WEEPlixgf9rM2L5vUIeudw0hFsdoVCy2vhheIvwmqpGwe8kk4UCnltEYGXCoXlwnleYG0sctoj1BWpkJrXUiHXokNohzovTddbdG5SAu8sUlx0zrwzFSroZQm8lyVXeEAF8fgiHe8lAu9qKzrkvZHao2VJpo3mCkUNvK57XhpNJ0O4ZmqiacOtGTRhPO-Eb4F3IcMIcIzlQknh0AGvB_0idcU9BeVYksXAUYcIvXIVuvIjcO1oz4ETpbBCly06_iJ9KzVP4htekHVhJRnxg8awvEGNluKssBgaLnVt-LPUFUuyM--AVy_C1vyA1kmjWZLNjysatKRMUnlnTVUA56dNPap0WNKeUiQ_na-A1yOdxKQa97uStIGTtxBCdvNKikYb52XpjhIhdUbuWFW0X_Wgg4U3S2RCeHH-XpoDWtHg31t1r463KCq0vMLeAc8gv9vc3D4-5tlml97crfKvm93mZnO32f8nT-_vH_bpfvNwvzuX3K4-P3xd5ftter_b7DdfV_nm_vbuS7b6RWp1H9TtP21XaZbv0vXqV40syaYk_-e3PN3tVtt9frf6urob0yCDb98-5ffp59XuMb1dsST7c7fP8iCfbW73d5ubM0cJ3omz22er7fZh-yGXGJ82Wba6_wvxQ-nAuFsdqY936X79sP2cPz7sNt_yr6vtbvNAuuIomk7ju9PKfLfaP243D1vaxd2Xx8eH7Z4lWTSOBU9CKeBP-MNbAfypNPqYbScid9hJ4E-y65Uspee1UMq31gxNC_xJ44uSGjmaGviT81aWnqDUG2ruDvjTi5UeOXECbjxpw6l5819MacMHPTiseC-owD3aQNWUbqEK3avz2PEjGvM-1DKt62QYnXgtUVVhqBlbiz0aG6P47yCUrOWINCOjJLh6S2Nyl4_-f8jupOuEL9uTwyNuHjGRm_5d98kpj12vhEcubMOVdJ6L2lPxnujPL-OCCnuLJfUK3lvRdGIka8KzcW7rsBMl9Rk6mdD_-ZNvLYqKO1Gjf_1nr34R5xZrtKhL5MdRJ8h8dM7mowMrBs8dehopJZ3UyCykf5EOudTOk01Tc2UaWQoVsCN0Gi56OaI8S7JZfJVcTS-XcQTc-YCE02nAEO38e_rUIXSuJHX66RXw-iCdLKSS_pUlWSurCjVpEOVzyMMw1FIX-ecBuG70UJ6h7WwST8gF9yx7birLyxbLZy41b7o6uKaMPcfL32foM4JT_T_ife0E5e9PZElGpzTGMbaxE4sSwdjXsVDo6A5hT88lRFWFVjA4DH5LXVHmBwvEc7IBnuX5H7e3-af06yrPntLtOs5v15s83X0e0fAHlL90a47L5TKqJyWL0umERl40Nc3MvbAOLQgP1PBNDdTtWZTGx6nmlm5VoeOF4mNRmhw520FTjkIvHF03lutjtcEjET4LLRq0NOoZDZ2pBkUz_PLvnYqXNFnNPtD87XIBWfoHDdlZ-gdsjntOtnaoxo51NHQqeVrGZtGnL-s8QNjtnrI7f3l2PXHoPpZEEP2IoiiaL6IiqZPZ1WW5gDzPw3BSYu-Nzd-mRZhMWLz-8COMbn-ZRMe-iZZbelOyYPFaOKFPa04nbmlDOgrhN9K5L24idcmSdDafJixJp8kYxfQsilmF1XKWiLPJ3b268eHRSu3D7Lofp9_LdyErXnLjvEXRsXhBE7DUPlzO_uXdYwx6N_TUCVi8_qLlDyLIRgt1CugyuqTPv1yULqrrpLpKrsQFXk-Xs8UimS2i-UV7jXG1XF5hjdNpcVUssLgSy_llPJsuEjGPFtMLeR1H8TyaR8vpYrqYzSfLqyiZiuJqVhVlUSeCzSLshFQT8nJibHMRLg3X0-TyKppdKFGgcuEXijguhobFMYtv6Xkci1mSfrtcvFHHwctofhBKVkSeZxf2OuxGMTSOzSLqHe7dmpde4XX6248aUtNoepbqF4NV1___DegYz-E6_l8AAAD__9Gps08">