HomePhabricator

Revert [X86] EltsFromConsecutiveLoads - support common source loads

Description

Revert [X86] EltsFromConsecutiveLoads - support common source loads

This reverts r366441 (git commit 48104ef7c9c653bbb732b66d7254957389fea337)

This causes clang to fail to compile some file in Skia. Reduction soon.

Details

Committed
rnkJul 18 2019, 2:26 PM
Parents
rL366500: [WebAssembly] fix bug in finding .tdata segment
Branches
Unknown
Tags
Unknown

Event Timeline

@rnk do you have a reduction for this yet please?

rnk added a comment.Jul 19 2019, 12:55 PM
          ******** /usr/local/google/home/rnk/llvm-project/build/SkOpts_sse41-c0ad66.reduced.cpp ********

extern "C" void *memcpy(void *, const void *, unsigned long);
template <typename a> using b = a __attribute__((ext_vector_type(4)));
using c = b<char>;
template <typename b, typename a> b d(a e, unsigned) {
  b f;
  f[2] = 2;
  memcpy(&f, e, 2);
  return f;
}
void g(c);
char h;
long i;
void j() { g(d<c>(&h, i)); }

Reducing the clang crash command...
Reduced command: /usr/local/google/home/rnk/llvm-project/build/bin/clang -cc1 -emit-obj -O2 SkOpts_sse41-c0ad66.reduced.cpp

Thanks - reduced test case:

@h = local_unnamed_addr global i8 0, align 1
define i32 @load_partial_illegal_type() {
  %1 = load <2 x i8>, <2 x i8>* bitcast (i8* @h to <2 x i8>*), align 1
  %2 = shufflevector <2 x i8> %1, <2 x i8> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
  %3 = insertelement <4 x i8> %2, i8 2, i32 2
  %4 = bitcast <4 x i8> %3 to i32
  ret i32 %4
}