You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2021/03/01 13:54:52 UTC
[GitHub] [tvm] mesauser edited a comment on issue #7539: [Failure] tests/python/topi/python/test_topi_broadcast.py::test_shift under LLVM12
mesauser edited a comment on issue #7539:
URL: https://github.com/apache/tvm/issues/7539#issuecomment-787965145
The method to legalize/ lower vector shift (like: v8i16 = sra t15, t14 ) changed in llvm X86 backend change (version>10)
It seems not implemented well in this special case for type i8/i16 yet.
Dumped examples for shift right with v8i16 and v4i32 type (llvm12):
Legalizing vector op: t20: **v4i32 = sra t19, t16**
Trying custom legalization
Vector-legalized selection DAG: %bb.0 'broadcast_binary_right_shift_compute_:entry'
SelectionDAG has 36 nodes:
t0: ch = EntryToken
t2: i64,ch = CopyFromReg t0, Register:i64 %2
t14: i64,ch = load<(load 8 from %ir.3, align 128)> t0, t2, undef:i64
t7: i64,ch = CopyFromReg t0, Register:i64 %1
t17: i64,ch = load<(load 8 from %ir.5, align 128)> t0, t7, undef:i64
t18: v2i64 = scalar_to_vector t17
t19: v4i32 = bitcast t18
t15: v2i64 = scalar_to_vector t14
t28: v8i16 = bitcast t15
t30: v8i16 = vector_shuffle<4,5,6,7,u,u,u,u> t28, undef:v8i16
t12: ch = TokenFactor t14:1, t17:1
t31: v8i16 = vector_shuffle<0,1,1,1,u,u,u,u> t28, undef:v8i16
t35: v4i32 = bitcast t31
t36: v4i32 = X86ISD::VSRA t19, t35
t32: v8i16 = vector_shuffle<2,3,3,3,u,u,u,u> t28, undef:v8i16
t37: v4i32 = bitcast t32
t38: v4i32 = X86ISD::VSRA t19, t37
t43: v4i32 = vector_shuffle<0,u,u,5> t36, t38
t33: v8i16 = vector_shuffle<0,1,1,1,u,u,u,u> t30, undef:v8i16
t39: v4i32 = bitcast t33
t40: v4i32 = X86ISD::VSRA t19, t39
t34: v8i16 = vector_shuffle<2,3,3,3,u,u,u,u> t30, undef:v8i16
t41: v4i32 = bitcast t34
t42: v4i32 = X86ISD::VSRA t19, t41
t44: v4i32 = vector_shuffle<2,u,u,7> t40, t42
t45: v4i32 = vector_shuffle<0,3,4,7> t43, t44
t23: v2i64 = bitcast t45
t25: i64 = extract_vector_elt t23, Constant:i64<0>
t11: i64,ch = CopyFromReg t0, Register:i64 %0
t26: ch = store<(store 8 into %ir.8, align 128)> t12, t25, t11, undef:i64
Legalizing vector op: t16: **v8i16 = sra t15, t14**
Vector-legalized selection DAG: %bb.0 'broadcast_binary_right_shift_compute_:entry'
SelectionDAG has 51 nodes:
t0: ch = EntryToken
t2: i64,ch = CopyFromReg t0, Register:i64 %2
t14: v8i16,ch = load<(load 16 from %ir.3, align 128, !tbaa !121)> t0, t2, undef:i64
t7: i64,ch = CopyFromReg t0, Register:i64 %1
t15: v8i16,ch = load<(load 16 from %ir.5, align 128, !tbaa !134)> t0, t7, undef:i64
t24: v8i16 = X86ISD::VSHLI t14, TargetConstant:i8<12>
t28: v8i16 = X86ISD::VSRAI t24, TargetConstant:i8<15>
t30: v8i16 = add t24, t24
t33: v8i16 = X86ISD::VSRAI t30, TargetConstant:i8<15>
t35: v8i16 = add t30, t30
t38: v8i16 = X86ISD::VSRAI t35, TargetConstant:i8<15>
t40: v8i16 = add t35, t35
t43: v8i16 = X86ISD::VSRAI t40, TargetConstant:i8<15>
t46: v8i16 = BUILD_VECTOR Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>, Constant:i16<-1>
t26: v8i16 = X86ISD::VSRAI t15, TargetConstant:i8<8>
t48: v8i16 = and t26, t28
t47: v8i16 = xor t28, t46
t49: v8i16 = and t15, t47
t50: v8i16 = or t48, t49
t32: v8i16 = X86ISD::VSRAI t50, TargetConstant:i8<4>
t52: v8i16 = and t32, t33
t51: v8i16 = xor t33, t46
t53: v8i16 = and t50, t51
t54: v8i16 = or t52, t53
t37: v8i16 = X86ISD::VSRAI t54, TargetConstant:i8<2>
t56: v8i16 = and t37, t38
t55: v8i16 = xor t38, t46
t57: v8i16 = and t54, t55
t58: v8i16 = or t56, t57
t12: ch = TokenFactor t14:1, t15:1
t42: v8i16 = X86ISD::VSRAI t58, TargetConstant:i8<1>
t60: v8i16 = and t42, t43
t59: v8i16 = xor t43, t46
t61: v8i16 = and t58, t59
t62: v8i16 = or t60, t61
t17: v4i32 = bitcast t62
t19: i32 = extract_vector_elt t17, Constant:i64<0>
t11: i64,ch = CopyFromReg t0, Register:i64 %0
t20: ch = store<(store 4 into %ir.8, align 128, !tbaa !147)> t12, t19, t11, undef:i64
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org