This is an archive of the discontinued LLVM Phabricator instance.

AVX512: store mask patterns.
ClosedPublic

Authored by igorb on Jan 26 2016, 12:12 PM.

Details

Summary

AVX512: Add store mask patterns.

original bug:

bash-4.1$ cat t.c
void f2(int);
void f1(int c)
{

static int v = 0;
if (v == 0)
  v = 1;
else
  v = 0;
f2(v);

}
bash-4.1$ clang -O2 -S -march=skylake t.c
fatal error: error in backend: Cannot select: t9: ch = store<ST1[@f1.v]> t18:1,

    t8, t23, undef:i64
t8: i1 = xor t21, Constant:i1<-1>
  t21: i1 = truncate t18
    t18: i32,ch = load<LD1[@f1.v], zext from i1> t0, t23, undef:i64
      t23: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<i1* @f1.v> 0
        t22: i64 = TargetGlobalAddress<i1* @f1.v> 0
      t5: i64 = undef
  t7: i1 = Constant<-1>
t23: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<i1* @f1.v> 0
  t22: i64 = TargetGlobalAddress<i1* @f1.v> 0
t5: i64 = undef

In function: f1

Diff Detail

Repository
rL LLVM

Event Timeline

igorb updated this revision to Diff 46026.Jan 26 2016, 12:12 PM
igorb retitled this revision from to AVX512: store mask patterns..
igorb updated this object.
igorb added a reviewer: delena.
igorb set the repository for this revision to rL LLVM.
igorb added a subscriber: llvm-commits.
igorb updated this revision to Diff 46103.Jan 26 2016, 11:43 PM
delena accepted this revision.Jan 27 2016, 12:21 AM
delena edited edge metadata.

LGTM

This revision is now accepted and ready to land.Jan 27 2016, 12:21 AM
This revision was automatically updated to reflect the committed changes.