diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2016-09-14 08:06:54 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2016-09-14 08:06:54 +0000 |
commit | 0569d9d5886d16285f9d6c9ea30de170d3731006 (patch) | |
tree | 70769d3a5fcbc86a0b10ffcc8b7f3f947608068c | |
parent | 74813fc19c41160d320587d6b816bace70c4a6bf (diff) | |
download | bcm5719-llvm-0569d9d5886d16285f9d6c9ea30de170d3731006.tar.gz bcm5719-llvm-0569d9d5886d16285f9d6c9ea30de170d3731006.zip |
AVX-512: Fixed a bug in kortest.z intrinsic
Lowering was wrong - X86ISD::SETCC node should return i8 type.
llvm-svn: 281446
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/avx512-intrinsics.ll | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5f7dbb68f83..dc7617d7b98 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -18336,7 +18336,7 @@ static SDValue LowerINTRINSIC_WO_CHAIN(SDValue Op, const X86Subtarget &Subtarget SDValue RHS = DAG.getBitcast(MVT::v16i1, Op.getOperand(2)); SDValue CC = DAG.getConstant(X86CC, dl, MVT::i8); SDValue Test = DAG.getNode(X86ISD::KORTEST, dl, MVT::i32, LHS, RHS); - SDValue SetCC = DAG.getNode(X86ISD::SETCC, dl, MVT::i1, CC, Test); + SDValue SetCC = DAG.getNode(X86ISD::SETCC, dl, MVT::i8, CC, Test); return DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, SetCC); } diff --git a/llvm/test/CodeGen/X86/avx512-intrinsics.ll b/llvm/test/CodeGen/X86/avx512-intrinsics.ll index d9a1bfb5d52..0e8e9f4212c 100644 --- a/llvm/test/CodeGen/X86/avx512-intrinsics.ll +++ b/llvm/test/CodeGen/X86/avx512-intrinsics.ll @@ -7,11 +7,9 @@ define i32 @test_kortestz(i16 %a0, i16 %a1) { ; CHECK: ## BB#0: ; CHECK-NEXT: kmovw %esi, %k0 ; CHECK-NEXT: kmovw %edi, %k1 +; CHECK-NEXT: xorl %eax, %eax ; CHECK-NEXT: kortestw %k0, %k1 ; CHECK-NEXT: sete %al -; CHECK-NEXT: kmovw %eax, %k0 -; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: andl $1, %eax ; CHECK-NEXT: retq %res = call i32 @llvm.x86.avx512.kortestz.w(i16 %a0, i16 %a1) ret i32 %res |