This is an archive of the discontinued LLVM Phabricator instance.

AVX512 : VALIGND/Q implemantation
ClosedPublic

Authored by igorb on Jun 8 2015, 5:22 AM.

Details

Summary

Implemented 256/128bit VALIGND/Q instructions for SKX and KNL
Implemented DAG lowering for all these forms.
Added tests for DAG lowering and encoding.

Diff Detail

Repository
rL LLVM

Event Timeline

igorb updated this revision to Diff 27297.Jun 8 2015, 5:22 AM
igorb retitled this revision from to AVX512 : VALIGND/Q implemantation.
igorb updated this object.
igorb edited the test plan for this revision. (Show Details)
igorb set the repository for this revision to rL LLVM.
igorb added a reviewer: delena.Jun 8 2015, 5:24 AM
igorb added a subscriber: Unknown Object (MLST).
delena added inline comments.Jun 8 2015, 6:02 AM
lib/Target/X86/X86InstrAVX512.td
6191 ↗(On Diff #27297)
defm VALIGND: avx512_valign<"valignd", avx512vl_i32_info,  avx512vl_f32_info>, EVEX_CD8<32, CD8VF>;
defm VALIGNQ: avx512_valign<"valignq", avx512vl_i64_info,  avx512vl_f64_info>, EVEX_CD8<64, CD8VF>;

multiclass avx512_valign <..> {
    defm NAME:   avx512_common_3Op_imm8<> 
    let isCodeGenOnly = 1 in {
      defm NAME#_FP: avx512_common_3Op_imm8<>
    }
}
igorb updated this revision to Diff 27307.Jun 8 2015, 6:46 AM

new diff uploaded.
rewrite instruction objects according to comments.

This revision was automatically updated to reflect the committed changes.