[X86][AMX] set Stride to Tile's Col when doing combine amxcast and store into tilestore
authorBing1 Yu <bing1.yu@intel.com>
Mon, 19 Jun 2023 07:57:01 +0000 (15:57 +0800)
committerBing1 Yu <bing1.yu@intel.com>
Tue, 20 Jun 2023 03:55:25 +0000 (11:55 +0800)
commit516e32678d87fea013aa972444b987d95eaef8aa
tree76f4b44afb8ddf4766fc852617bddfc18e76fe50
parentdafaa8463ef6991055c2fcee799757fa46965625
[X86][AMX] set Stride to Tile's Col when doing combine amxcast and store into tilestore

%tile = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, i8* %src_ptr, i64 64)
%vec = call <256 x i8> @llvm.x86.cast.tile.to.vector.v256i8(x86_amx...%tile)
store <256 x i8> %vec, <256 x i8>* %dst_ptr, align 256
=>
%tile = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, i8* %src_ptr, i64 64)
%stride = sext i16 32 to i64
call void @llvm.x86.tilestored64.internal(i16 8, i16 32, i8* %dst_ptr, i64 32, x86_amx %tile)

Reviewed By: LuoYuanke

Differential Revision: https://reviews.llvm.org/D153002
llvm/include/llvm/IR/IntrinsicsX86.td
llvm/lib/Target/X86/X86LowerAMXType.cpp
llvm/test/CodeGen/X86/AMX/amx-combine.ll
llvm/test/CodeGen/X86/AMX/lat-transform-amx-bitcast.ll