HLO が LLVM の bitcode 的な感じの立ち位置
実際見た目も似ている。違いは操作単位がデカい(テンソル)こと
ENTRY %cluster_0__XlaCompiledKernel_true__XlaNumConstantArgs_0__XlaNumResourceArgs_0_.v6 (arg0: f32[1024,1024], arg1: f32[1024,1024]) -> (f32[1024,1024]) { %arg1 = f32[1024,1024]{1,0} parameter(1) %arg0 = f32[1024,1024]{1,0} parameter(0) %dot = f32[1024,1024]{1,0} dot(f32[1024,1024]{1,0} %arg1, f32[1024,1024]{1,0} %arg0), lhs_contracting_dims={1}, rhs_contracting_dims={0}, metadata={op_type="MatMul" op_name="result"} %tuple = (f32[1024,1024]{1,0}) tuple(f32[1024,1024]{1,0} %dot), metadata={op_type="_Retval" op_name="result_0_retval_RetVal"} %get-tuple-element = f32[1024,1024]{1,0} get-tuple-element((f32[1024,1024]{1,0}) %tuple), index=0, metadata={op_type="_Retval" op_name="result_0_retval_RetVal"} ROOT %tuple.1 = (f32[1024,1024]{1,0}) tuple(f32[1024,1024]{1,0} %get-tuple-element) }