8762690

Increment-Propagate and Decrement-Propagate Instructions for Processing Vectors

PublishedJune 24, 2014
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
40 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for generating a result vector with incremented values from an input vector, comprising: receiving the input vector and a control vector, and optionally receiving a predicate vector, wherein each vector includes N elements; recording a value from an element at a key element position in the input vector into a base value; and generating the result vector, wherein generating the result vector involves, if the predicate vector is received, for each element in the result vector to the right of the key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the right of the key element position, setting the element in the result vector equal to the base value plus a number of relevant elements in the result vector from an element at the key element position in the result vector to and including a predetermined element in the result vector.

2

2. The method of claim 1 , wherein the predetermined element in the result vector is one of: a first element to the left of the element in the result vector; or the element in the result vector.

3

3. The method of claim 2 , wherein generating the result vector involves setting an element in the result vector at the key element position equal to one of: the base value; or the base value plus one.

4

4. The method of claim 3 , wherein if the predicate vector is received, the key element position is a leftmost element position where both the control vector and the predicate vector contain a non-zero value; otherwise, the key element position is a leftmost element position where the control vector contains a non-zero value.

5

5. The method of claim 4 , wherein if the predicate vector is received, for each element in the result vector to the left of a key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the left of the key element position in the result vector, generating the result vector involves setting the element in the result vector equal to a value in a corresponding element in the input vector; and wherein if no key element position exists, if the predicate vector is received, for each element in the result vector for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector, generating the result vector involves setting each element in the result vector equal to a value in a corresponding element in the input vector.

6

6. The method of claim 5 , wherein if the predicate vector is received, generating the result vector involves, for each element in the result vector, one of: leaving the element in the result vector unmodified if a corresponding element in the predicate vector contains a zero; or setting the element in the result vector to zero if a corresponding element in the predicate vector contains a zero.

7

7. The method of claim 1 , wherein if the predicate vector is received, a relevant element in the result vector is an element in the result vector for which the corresponding element in the predicate vector and the corresponding element in the control vector contain non-zero values; otherwise, a relevant element in the result vector is an element in the result vector for which the corresponding element in the control vector contains a non-zero value.

8

8. The method of claim 1 , wherein generating the result vector involves processing elements in the input vector, control vector, and, if the predicate vector is received, the predicate vector in parallel to enable the elements of the result vector to be generated in parallel.

9

9. A method for generating a result vector with decremented values from an input vector, comprising: receiving the input vector and a control vector, and optionally receiving a predicate vector, wherein each vector includes N elements; recording a value from an element at a key element position in the input vector into a base value; and generating the result vector, wherein generating the result vector involves, if the predicate vector is received, for each element in the result vector to the right of the key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the right of the key element position, setting the element in the result vector equal to the base value minus a number of relevant elements in the result vector from an element at the key element position in the result vector to and including a predetermined element in the result vector.

10

10. The method of claim 9 , wherein the predetermined element in the result vector is one of: a first element to the left of the element in the result vector; or the element in the result vector.

11

11. The method of claim 10 , wherein generating the result vector involves setting an element in the result vector at the key element position equal to one of: the base value; or the base value minus one.

12

12. The method of claim 11 , wherein if the predicate vector is received, the key element position is a leftmost element position where both the control vector and the predicate vector contain a non-zero value; otherwise, the key element position is a leftmost element position where the control vector contains a non-zero value.

13

13. The method of claim 12 , wherein if the predicate vector is received, for each element in the result vector to the left of a key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the left of the key element position in the result vector, generating the result vector involves setting the element in the result vector equal to a value in a corresponding element in the input vector; and wherein if no key element position exists, if the predicate vector is received, for each element in the result vector for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector, generating the result vector involves setting each element in the result vector equal to a value in a corresponding element in the input vector.

14

14. The method of claim 13 , wherein if the predicate vector is received, generating the result vector involves, for each element in the result vector, one of: leaving the element in the result vector unmodified if a corresponding element in the predicate vector contains a zero; or setting the element in the result vector to zero if a corresponding element in the predicate vector contains a zero.

15

15. The method of claim 9 , wherein if the predicate vector is received, a relevant element in the result vector is an element in the result vector for which the corresponding element in the predicate vector and the corresponding element in the control vector contain non-zero values; otherwise, a relevant element in the result vector is an element in the result vector for which the corresponding element in the control vector contains a non-zero value.

16

16. The method of claim 9 , wherein generating the result vector involves processing elements in the input vector, control vector, and, if the predicate vector is received, the predicate vector in parallel to enable the elements of the result vector to be generated in parallel.

17

17. A processor for generating a result vector with incremented values from an input vector, comprising: at least one execution unit, wherein the execution unit is configured to: receive the input vector and a control vector, and optionally receive a predicate vector, wherein each vector includes N elements; record a value from an element at a key element position in the input vector into a base value; and generate the result vector, wherein when generating the result vector, if the predicate vector is received, for each element in the result vector to the right of the key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the right of the key element position, the execution unit is configured to set the element in the result vector equal to the base value plus a number of relevant elements in the result vector from an element at the key element position in the result vector to and including a predetermined element in the result vector.

18

18. The processor of claim 17 , wherein the predetermined element in the result vector is one of: a first element to the left of the element in the result vector; or the element in the result vector.

19

19. The processor of claim 18 , wherein when generating the result vector, the execution unit is configured to set an element in the result vector at the key element position equal to one of: the base value; or the base value plus one.

20

20. The processor of claim 19 , wherein if the predicate vector is received, the key element position is a leftmost element position where both the control vector and the predicate vector contain a non-zero value; otherwise, the key element position is a leftmost element position where the control vector contains a non-zero value.

21

21. The processor of claim 20 , wherein if the predicate vector is received, for each element in the result vector to the left of a key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the left of the key element position in the result vector, when generating the result vector, the execution unit is configured to set the element in the result vector equal to a value in a corresponding element in the input vector; and wherein if no key element position exists, if the predicate vector is received, for each element in the result vector for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector, when generating the result vector, the execution unit is configured to set each element in the result vector equal to a value in a corresponding element in the input vector.

22

22. The processor of claim 21 , wherein if the predicate vector is received, for each element in the result vector, when generating the result vector, the execution unit is configured to one of: leave the element in the result vector unmodified if a corresponding element in the predicate vector contains a zero; or set the element in the result vector to zero if a corresponding element in the predicate vector contains a zero.

23

23. The processor of claim 17 , wherein if the predicate vector is received, a relevant element in the result vector is an element in the result vector for which the corresponding element in the predicate vector and the corresponding element in the control vector contain non-zero values; otherwise, a relevant element in the result vector is an element in the result vector for which the corresponding element in the control vector contains a non-zero value.

24

24. The processor of claim 17 , wherein when generating the result vector, the execution unit is configured to process elements in the input vector, control vector, and, if the predicate vector is received, the predicate vector in parallel to enable the elements of the result vector to be generated in parallel.

25

25. A processor for generating a result vector with decremented values from an input vector, comprising: at least one execution unit, wherein the execution unit is configured to: receive the input vector and a control vector, and optionally receive a predicate vector, wherein each vector includes N elements; record a value from an element at a key element position in the input vector into a base value; and generate the result vector, wherein when generating the result vector, if the predicate vector is received, for each element in the result vector to the right of the key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the right of the key element position, the execution unit is configured to set the element in the result vector equal to the base value minus a number of relevant elements in the result vector from an element at the key element position in the result vector to and including a predetermined element in the result vector.

26

26. The processor of claim 25 , wherein the predetermined element in the result vector is one of: a first element to the left of the element in the result vector; or the element in the result vector.

27

27. The processor of claim 26 , wherein when generating the result vector, the execution unit is configured to set an element in the result vector at the key element position equal to one of: the base value; or the base value minus one.

28

28. The processor of claim 27 , wherein if the predicate vector is received, the key element position is a leftmost element position where both the control vector and the predicate vector contain a non-zero value; otherwise, the key element position is a leftmost element position where the control vector contains a non-zero value.

29

29. The processor of claim 28 , wherein if the predicate vector is received, for each element in the result vector to the left of a key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the left of the key element position in the result vector, when generating the result vector, the execution unit is configured to set the element in the result vector equal to a value in a corresponding element in the input vector; and wherein if no key element position exists, if the predicate vector is received, for each element in the result vector for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector, when generating the result vector, the execution unit is configured to set each element in the result vector equal to a value in a corresponding element in the input vector.

30

30. The processor of claim 29 , wherein if the predicate vector is received, for each element in the result vector, when generating the result vector, the execution unit is configured to one of: leave the element in the result vector unmodified if a corresponding element in the predicate vector contains a zero; or set the element in the result vector to zero if a corresponding element in the predicate vector contains a zero.

31

31. The processor of claim 25 , wherein if the predicate vector is received, a relevant element in the result vector is an element in the result vector for which the corresponding element in the predicate vector and the corresponding element in the control vector contain non-zero values; otherwise, a relevant element in the result vector is an element in the result vector for which the corresponding element in the control vector contains a non-zero value.

32

32. The processor of claim 25 , wherein when generating the result vector, the execution unit is configured to process elements in the input vector, control vector, and, if the predicate vector is received, the predicate vector in parallel to enable the elements of the result vector to be generated in parallel.

33

33. A computer system for generating a result vector with incremented values from an input vector, comprising: a processor; a memory coupled to the processor, wherein the memory stores instructions and data for the processor; and at least one execution unit in the processor, wherein the execution unit is configured to: receive the input vector and a control vector, and optionally receive a predicate vector, wherein each vector includes N elements; record a value from an element at a key element position in the input vector into a base value; and generate the result vector, wherein when generating the result vector, if the predicate vector is received, for each element in the result vector to the right of the key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the right of the key element position, the execution unit is configured to set the element in the result vector equal to the base value plus a number of relevant elements in the result vector from an element at the key element position in the result vector to and including a predetermined element in the result vector.

34

34. The computer system of claim 33 , wherein the predetermined element in the result vector is one of: a first element to the left of the element in the result vector; or the element in the result vector.

35

35. The computer system of claim 34 , wherein when generating the result vector, the execution unit is configured to set an element in the result vector at the key element position equal to one of: the base value; or the base value plus one.

36

36. The computer system of claim 35 , wherein if the predicate vector is received, the key element position is a leftmost element position where both the control vector and the predicate vector contain a non-zero value; otherwise, the key element position is a leftmost element position where the control vector contains a non-zero value.

37

37. The computer system of claim 36 , wherein if the predicate vector is received, for each element in the result vector to the left of a key element position for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector to the left of the key element position in the result vector, when generating the result vector, the execution unit is configured to set the element in the result vector equal to a value in a corresponding element in the input vector; and wherein if no key element position exists, if the predicate vector is received, for each element in the result vector for which a corresponding element in the predicate vector contains a non-zero value, otherwise, for each element in the result vector, when generating the result vector, the execution unit is configured to set each element in the result vector equal to a value in a corresponding element in the input vector.

38

38. The computer system of claim 37 , wherein if the predicate vector is received, for each element in the result vector, when generating the result vector, the execution unit is configured to one of: leave the element in the result vector unmodified if a corresponding element in the predicate vector contains a zero; or set the element in the result vector to zero if a corresponding element in the predicate vector contains a zero.

39

39. The computer system of claim 33 , wherein if the predicate vector is received, a relevant element in the result vector is an element in the result vector for which the corresponding element in the predicate vector and the corresponding element in the control vector contain non-zero values; otherwise, a relevant element in the result vector is an element in the result vector for which the corresponding element in the control vector contains a non-zero value.

40

40. The computer system of claim 33 , wherein when generating the result vector, the execution unit is configured to process elements in the input vector, control vector, and, if the predicate vector is received, the predicate vector in parallel to enable the elements of the result vector to be generated in parallel.

Patent Metadata

Filing Date

Unknown

Publication Date

June 24, 2014

Inventors

Jeffry E. Gonion
Keith E. Diefendorff JR.

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “INCREMENT-PROPAGATE AND DECREMENT-PROPAGATE INSTRUCTIONS FOR PROCESSING VECTORS” (8762690). https://patentable.app/patents/8762690

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.