diff options
author | Craig Topper <craig.topper@gmail.com> | 2011-10-30 17:22:45 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2011-10-30 17:22:45 +0000 |
commit | 6762427e8e068c8517ff7ab6a54f699e2bb2dec7 (patch) | |
tree | 9b8e86c5b7fc84dbd16e25cafdb8b9c44bd70cbd | |
parent | fb0dfbbff7fb3a9cff09301c174a65aec7b98760 (diff) | |
download | llvm-6762427e8e068c8517ff7ab6a54f699e2bb2dec7.tar.gz llvm-6762427e8e068c8517ff7ab6a54f699e2bb2dec7.tar.bz2 llvm-6762427e8e068c8517ff7ab6a54f699e2bb2dec7.tar.xz |
Fix return type for X86 mpsadbw instrinsic. The instruction takes in a vector of 8-bit integers, but produces a vector of 16-bit integers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143313 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/IntrinsicsX86.td | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/avx-intrinsics-x86.ll | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/include/llvm/IntrinsicsX86.td b/include/llvm/IntrinsicsX86.td index 2bad822abe..46e47ab082 100644 --- a/include/llvm/IntrinsicsX86.td +++ b/include/llvm/IntrinsicsX86.td @@ -919,7 +919,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". // Vector sum of absolute differences let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse41_mpsadbw : GCCBuiltin<"__builtin_ia32_mpsadbw128">, - Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty,llvm_i32_ty], + Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty,llvm_i32_ty], [IntrNoMem, Commutative]>; } diff --git a/test/CodeGen/X86/avx-intrinsics-x86.ll b/test/CodeGen/X86/avx-intrinsics-x86.ll index 5201688686..0e2a671e4c 100644 --- a/test/CodeGen/X86/avx-intrinsics-x86.ll +++ b/test/CodeGen/X86/avx-intrinsics-x86.ll @@ -964,12 +964,12 @@ define <2 x i64> @test_x86_sse41_movntdqa(i8* %a0) { declare <2 x i64> @llvm.x86.sse41.movntdqa(i8*) nounwind readonly -define <16 x i8> @test_x86_sse41_mpsadbw(<16 x i8> %a0, <16 x i8> %a1) { +define <8 x i16> @test_x86_sse41_mpsadbw(<16 x i8> %a0, <16 x i8> %a1) { ; CHECK: vmpsadbw - %res = call <16 x i8> @llvm.x86.sse41.mpsadbw(<16 x i8> %a0, <16 x i8> %a1, i32 7) ; <<16 x i8>> [#uses=1] - ret <16 x i8> %res + %res = call <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8> %a0, <16 x i8> %a1, i32 7) ; <<8 x i16>> [#uses=1] + ret <8 x i16> %res } -declare <16 x i8> @llvm.x86.sse41.mpsadbw(<16 x i8>, <16 x i8>, i32) nounwind readnone +declare <8 x i16> @llvm.x86.sse41.mpsadbw(<16 x i8>, <16 x i8>, i32) nounwind readnone define <8 x i16> @test_x86_sse41_packusdw(<4 x i32> %a0, <4 x i32> %a1) { |