Movatterモバイル変換


[0]ホーム

URL:


US20160283242A1 - Apparatus and method for vector horizontal logical instruction - Google Patents

Apparatus and method for vector horizontal logical instruction
Download PDF

Info

Publication number
US20160283242A1
US20160283242A1US14/582,170US201414582170AUS2016283242A1US 20160283242 A1US20160283242 A1US 20160283242A1US 201414582170 AUS201414582170 AUS 201414582170AUS 2016283242 A1US2016283242 A1US 2016283242A1
Authority
US
United States
Prior art keywords
operand
packed data
instruction
bits
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/582,170
Inventor
Elmoustapha Ould-Ahmed-Vall
David GUILLEN FANDOS
Jesus F. SANCHEZ
Guillem Sole
Roger Espasa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel CorpfiledCriticalIntel Corp
Priority to US14/582,170priorityCriticalpatent/US20160283242A1/en
Priority to JP2017527292Aprioritypatent/JP2018503890A/en
Priority to TW104138796Aprioritypatent/TWI610231B/en
Priority to KR1020177013374Aprioritypatent/KR20170097613A/en
Priority to EP15873973.0Aprioritypatent/EP3238045A4/en
Priority to PCT/US2015/062095prioritypatent/WO2016105766A1/en
Priority to CN201580063798.7Aprioritypatent/CN107003842A/en
Publication of US20160283242A1publicationCriticalpatent/US20160283242A1/en
Priority to US16/110,298prioritypatent/US20190138303A1/en
Assigned to INTEL CORPORATIONreassignmentINTEL CORPORATIONASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: OULD-AHMED-VALL, Elmoustapha, SOLE, Guillem, Guillen Fandos, David, SANCHEZ, JESUS F., ESPASA, ROGER
Abandonedlegal-statusCriticalCurrent

Links

Images

Classifications

Definitions

Landscapes

Abstract

An apparatus and method are described for performing vector horizontal logical instruction. For example, one embodiment of a processor comprises: fetch logic to fetch an instruction from memory, and execution logic to determine a value of a first set of one or more data elements from a first specified set of bits of an immediate operand, wherein positions of the first set of one or more data elements determined from the first specified set of bits of the immediate operand are based on a first set of one or more index values that have a most significant bit corresponding to a packed data element at a first set of one or more positions of a destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of a first source packed data operand.

Description

Claims (22)

We claim:
1. A processor comprising:
fetch logic to fetch an instruction from memory indicating a destination packed data operand, a first source packed data operand, a second source packed data operand, and an immediate operand; and
execution logic to determine a value of a first set of one or more data elements from a first specified set of bits of the immediate operand, wherein positions of the first set of one or more data elements determined from the first specified set of bits of the immediate operand are based on a first set of one or more index values that have a most significant bit corresponding to a packed data element at a first set of one or more positions of the destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of the first source packed data operand.
2. The processor ofclaim 1, wherein the execution logic is to further:
determine that the value of at least one data element is a 1;
determine a value of a second set of one or more data elements (bits) from second specified set of bits of the immediate operand, wherein the positions of the second set of one or more data elements determined from the second specified set of bits of the immediate operand are based on a second set of one or more index values that have a most significant bit corresponding to a packed data element at a second set of one or more positions of the destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of the second source packed data operand; and
store the corresponding one of the second set of data elements at the second set of one or more positions of the storage location indicated by the destination packed data operand.
3. The processor ofclaim 2, wherein the first set of positions are positions within a set of 64 packed data elements of the destination packed data operand and the first source packed data operand and the second set of positions are positions within a set of 64 packed data elements of the destination packed data operand and the second source packed data operand, and wherein the destination packed data operand, the first source packed data operand, and the second source packed data operand include a one or more sets of 64 packed data elements.
4. The processor ofclaim 3, wherein the instruction further includes a writemask operand, and wherein the execution logic further comprises:
responsive to a determination that the writemask operand indicates that a writemask is set for one of the set of 64 packed data elements in the destination packed data operand, and responsive to determining that a merging-masking flag is set for the instruction, preserve the values stored in the storage location indicated by the destination packed data operand for the positions indicated by the one of the set of 64 packed data elements.
5. The processor ofclaim 3, wherein the instruction further includes a writemask operand, and wherein the execution logic, responsive to determining that the writemask operand indicates that a writemask is set for one of the set of 64 packed data elements in the destination packed data operand, and responsive to determining that a merging-masking flag is not set for the instruction, is to further store the value 0 in the storage location indicated by the destination packed data operand for the positions indicated by the one of the set of 64 packed data elements.
6. The processor ofclaim 3, wherein the storage location indicated by the destination packed data operand is one of a register and memory location.
7. The processor ofclaim 3, wherein the storage location indicated by the first source packed data operand is one of a register and memory location.
8. The processor ofclaim 3, wherein the storage location indicated by the destination packed data operand has a length of 512 packed data elements.
9. The processor ofclaim 1, wherein the execution logic is to further:
determine that the values of all the first set of data elements are 0; and
store the value 0 at the first set of one or more positions of the storage location indicated by the destination packed data operand.
10. The processor ofclaim 1, wherein the first specified set of bits and the second specified set of bits of the immediate operand each represent the output of a binary function.
11. The processor ofclaim 1, wherein the immediate operand has a length of 8 bits, and wherein the first specified set of bits of the immediate operand are the least significant 4 bits of the immediate operand, and wherein the second specified set of bits of the immediate operand are the most significant 4 bits of the immediate operand.
12. A method in a computer processor, comprising:
fetching an instruction from memory indicating a destination packed data operand, a first source packed data operand, a second source packed data operand, and an immediate operand; and
determining a value of a first set of one or more data elements from a first specified set of bits of the immediate operand, wherein positions of the first set of one or more data elements determined from the first specified set of bits of the immediate operand are based on a first set of one or more index values that have a most significant bit corresponding to a packed data element at a first set of one or more positions of the destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of the first source packed data operand.
13. The method ofclaim 12, further comprising:
determining that the value of at least one data element is a 1;
determining a value of a second set of one or more data elements (bits) from second specified set of bits of the immediate operand, wherein the positions of the second set of one or more data elements determined from the second specified set of bits of the immediate operand are based on a second set of one or more index values that have a most significant bit corresponding to a packed data element at a second set of one or more positions of the destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of the second source packed data operand; and
storing the corresponding one of the second set of data elements at the second set of one or more positions of the storage location indicated by the destination packed data operand.
14. The method ofclaim 13, wherein the first set of positions are positions within a set of 64 packed data elements of the destination packed data operand and the first source packed data operand and the second set of positions are positions within a set of 64 packed data elements of the destination packed data operand and the second source packed data operand, and wherein the destination packed data operand, the first source packed data operand, and the second source packed data operand include a one or more sets of 64 packed data elements.
15. The method ofclaim 14, wherein the instruction further includes a writemask operand, and wherein the method further comprises:
responsive to determining that the writemask operand indicates that a writemask is set for one of the set of 64 packed data elements in the destination packed data operand, and responsive to determining that a merging-masking flag is set for the instruction, preserving the values stored in the storage location indicated by the destination packed data operand for the positions indicated by the one of the set of 64 packed data elements.
16. The method ofclaim 14, wherein the instruction further includes a writemask operand, and wherein the method further comprises:
responsive to determining that the writemask operand indicates that a writemask is set for one of the set of 64 packed data elements in the destination packed data operand, and responsive to determining that a merging-masking flag is not set for the instruction, storing the value 0 in the storage location indicated by the destination packed data operand for the positions indicated by the one of the set of 64 packed data elements.
17. The method ofclaim 14, wherein the storage location indicated by the destination packed data operand is one of a register and memory location.
18. The method ofclaim 14, wherein the storage location indicated by the first source packed data operand is one of a register and memory location.
19. The method ofclaim 14, wherein the storage location indicated by the destination packed data operand has a length of 512 packed data elements.
20. The method ofclaim 12, further comprising:
determining that the values of all the first set of data elements are 0; and
storing the value 0 at the first set of one or more positions of the storage location indicated by the destination packed data operand.
21. The method ofclaim 12, wherein the first specified set of bits and the second specified set of bits of the immediate operand each represent the output of a binary function.
22. The method ofclaim 12, wherein the immediate operand has a length of 8 bits, and wherein the first specified set of bits of the immediate operand are the least significant 4 bits of the immediate operand, and wherein the second specified set of bits of the immediate operand are the most significant 4 bits of the immediate operand.
US14/582,1702014-12-232014-12-23Apparatus and method for vector horizontal logical instructionAbandonedUS20160283242A1 (en)

Priority Applications (8)

Application NumberPriority DateFiling DateTitle
US14/582,170US20160283242A1 (en)2014-12-232014-12-23Apparatus and method for vector horizontal logical instruction
JP2017527292AJP2018503890A (en)2014-12-232015-11-23 Apparatus and method for vector horizontal logic instruction
TW104138796ATWI610231B (en)2014-12-232015-11-23 Apparatus and method for vector horizontal logic instructions
KR1020177013374AKR20170097613A (en)2014-12-232015-11-23Apparatus and method for vector horizontal logical instruction
EP15873973.0AEP3238045A4 (en)2014-12-232015-11-23Apparatus and method for vector horizontal logical instruction
PCT/US2015/062095WO2016105766A1 (en)2014-12-232015-11-23Apparatus and method for vector horizontal logical instruction
CN201580063798.7ACN107003842A (en)2014-12-232015-11-23Apparatus and method for vector horizontal logical order
US16/110,298US20190138303A1 (en)2014-12-232018-08-23Apparatus and method for vector horizontal logical instruction

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US14/582,170US20160283242A1 (en)2014-12-232014-12-23Apparatus and method for vector horizontal logical instruction

Related Child Applications (1)

Application NumberTitlePriority DateFiling Date
US16/110,298ContinuationUS20190138303A1 (en)2014-12-232018-08-23Apparatus and method for vector horizontal logical instruction

Publications (1)

Publication NumberPublication Date
US20160283242A1true US20160283242A1 (en)2016-09-29

Family

ID=56151332

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US14/582,170AbandonedUS20160283242A1 (en)2014-12-232014-12-23Apparatus and method for vector horizontal logical instruction
US16/110,298AbandonedUS20190138303A1 (en)2014-12-232018-08-23Apparatus and method for vector horizontal logical instruction

Family Applications After (1)

Application NumberTitlePriority DateFiling Date
US16/110,298AbandonedUS20190138303A1 (en)2014-12-232018-08-23Apparatus and method for vector horizontal logical instruction

Country Status (7)

CountryLink
US (2)US20160283242A1 (en)
EP (1)EP3238045A4 (en)
JP (1)JP2018503890A (en)
KR (1)KR20170097613A (en)
CN (1)CN107003842A (en)
TW (1)TWI610231B (en)
WO (1)WO2016105766A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US11093822B2 (en)*2017-04-282021-08-17Intel CorporationVariable precision and mix type representation of multiple layers in a network
WO2022079891A1 (en)*2020-10-162022-04-21日本電信電話株式会社Confidential msb normalization system, distributed processing device, confidential msb normalization method, and program
CN117270967B (en)*2023-09-282024-07-26中国人民解放军国防科技大学 Method and device for automatically generating instruction set architecture simulator based on model drive

Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5487159A (en)*1993-12-231996-01-23Unisys CorporationSystem for processing shift, mask, and merge operations in one instruction
US8539206B2 (en)*2010-09-242013-09-17Intel CorporationMethod and apparatus for universal logical operations utilizing value indexing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7899855B2 (en)*2003-09-082011-03-01Intel CorporationMethod, apparatus and instructions for parallel data conversions
TWI354241B (en)*2006-02-062011-12-11Via Tech IncMethods and apparatus for graphics processing
US10203954B2 (en)*2011-11-252019-02-12Intel CorporationInstruction and logic to provide conversions between a mask register and a general purpose register or memory
WO2013095631A1 (en)*2011-12-232013-06-27Intel CorporationSystems, apparatuses, and methods for performing a butterfly horizontal and cross add or substract in response to a single instruction
CN103999037B (en)*2011-12-232020-03-06英特尔公司Systems, apparatuses, and methods for performing a lateral add or subtract in response to a single instruction
WO2013095653A1 (en)*2011-12-232013-06-27Intel CorporationSystems, apparatuses, and methods for performing a conversion of a writemask register to a list of index values in a vector register
CN104011649B (en)*2011-12-232018-10-09英特尔公司Device and method for propagating estimated value of having ready conditions in the execution of SIMD/ vectors
US20140095845A1 (en)*2012-09-282014-04-03Vinodh GopalApparatus and method for efficiently executing boolean functions
US9471310B2 (en)*2012-11-262016-10-18Nvidia CorporationMethod, computer program product, and system for a multi-input bitwise logical operation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5487159A (en)*1993-12-231996-01-23Unisys CorporationSystem for processing shift, mask, and merge operations in one instruction
US8539206B2 (en)*2010-09-242013-09-17Intel CorporationMethod and apparatus for universal logical operations utilizing value indexing

Also Published As

Publication numberPublication date
JP2018503890A (en)2018-02-08
TWI610231B (en)2018-01-01
CN107003842A (en)2017-08-01
KR20170097613A (en)2017-08-28
US20190138303A1 (en)2019-05-09
TW201643702A (en)2016-12-16
EP3238045A4 (en)2018-08-22
WO2016105766A1 (en)2016-06-30
EP3238045A1 (en)2017-11-01

Similar Documents

PublicationPublication DateTitle
US10671392B2 (en)Systems, apparatuses, and methods for performing delta decoding on packed data elements
US9552205B2 (en)Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
US20160179523A1 (en)Apparatus and method for vector broadcast and xorand logical instruction
US20180032332A1 (en)Three source operand floating-point addition instruction with operand negation bits and intermediate and final result rounding
US9684510B2 (en)Systems, apparatuses, and methods for performing a shuffle and operation (Shuffle-Op)
US10860315B2 (en)Systems, apparatuses, and methods for arithmetic recurrence
US10474463B2 (en)Apparatus and method for down conversion of data types
US20170192782A1 (en)Systems, Apparatuses, and Methods for Aggregate Gather and Stride
US9582464B2 (en)Systems, apparatuses, and methods for performing a double blocked sum of absolute differences
US9678751B2 (en)Systems, apparatuses, and methods for performing a horizontal partial sum in response to a single instruction
US9459865B2 (en)Systems, apparatuses, and methods for performing a butterfly horizontal and cross add or substract in response to a single instruction
US20160179530A1 (en)Instruction and logic to perform a vector saturated doubleword/quadword add
US10223119B2 (en)Processors, methods, systems, and instructions to store source elements to corresponding unmasked result elements with propagation to masked result elements
US10891131B2 (en)Processors, methods, systems, and instructions to consolidate data elements and generate index updates
US9870338B2 (en)Systems, apparatuses, and methods for performing vector packed compression and repeat
WO2018009319A1 (en)Systems, apparatuses, and methods for strided load
US20140082333A1 (en)Systems, apparatuses, and methods for performing an absolute difference calculation between corresponding packed data elements of two vector registers
US20140129801A1 (en)Systems, apparatuses, and methods for performing delta encoding on packed data elements
US20190138303A1 (en)Apparatus and method for vector horizontal logical instruction
WO2017117387A1 (en)Systems, apparatuses, and methods for getting even and odd data elements
US20190205131A1 (en)Systems, methods, and apparatuses for vector broadcast
US10884750B2 (en)Strideshift instruction for transposing bits inside vector register
US10846087B2 (en)Systems, apparatuses, and methods for broadcast arithmetic operations
US10268479B2 (en)Systems, apparatuses, and methods for broadcast compare addition

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:INTEL CORPORATION, CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OULD-AHMED-VALL, ELMOUSTAPHA;GUILLEN FANDOS, DAVID;SANCHEZ, JESUS F.;AND OTHERS;SIGNING DATES FROM 20030220 TO 20150115;REEL/FRAME:046682/0393

STCBInformation on status: application discontinuation

Free format text:ABANDONMENT FOR FAILURE TO CORRECT DRAWINGS/OATH/NONPUB REQUEST


[8]ページ先頭

©2009-2025 Movatter.jp