Qualcomm Hexagon V67 Programmer's Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
Qualcomm® Hexagon™ V67 Programmer’s Reference Manual 80-N2040-45 Rev. B February 25, 2020 All Qualcomm products mentioned herein are products of Qualcomm Technologies, Inc. and/or its subsidiaries Qualcomm and Hexagon are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other product and brand names may be trademarks or registered trademarks of their respective owners. This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion contrary to U.S. and international law is strictly prohibited. Qualcomm Technologies, Inc. 5775 Morehouse Drive San Diego, CA 92121 U.S.A. © 2018, 2020 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved. Contents Figures .............................................................................................................................. 14 Tables ................................................................................................................................ 15 1 Introduction......................................................................................... 17 1.1 Features....................................................................................................................... 17 1.2 Functional units .......................................................................................................... 19 1.2.1 Memory............................................................................................................. 20 1.2.2 Registers............................................................................................................ 20 1.2.3 Sequencer.......................................................................................................... 20 1.2.4 Execution units.................................................................................................. 20 1.2.5 Load/store units................................................................................................. 20 1.3 Instruction set .............................................................................................................21 1.3.1 Addressing modes............................................................................................. 21 1.3.2 Scalar operations............................................................................................... 22 1.3.3 Vector operations .............................................................................................. 22 1.3.4 Floating-point operations.................................................................................. 23 1.3.5 Program flow .................................................................................................... 24 1.3.6 Instruction packets ............................................................................................ 24 1.3.7 Dot-new instructions......................................................................................... 25 1.3.8 Compound instructions ..................................................................................... 25 1.3.9 Duplex instructions ........................................................................................... 25 1.3.10 Instruction classes ........................................................................................... 25 1.3.11 Instruction intrinsics........................................................................................ 26 1.4 Notation ...................................................................................................................... 27 1.4.1 Instruction syntax.............................................................................................. 27 1.4.2 Register operands.............................................................................................. 28 1.4.3 Numeric operands ............................................................................................. 30 1.5 Terminology ............................................................................................................... 31 1.6 Technical assistance.................................................................................................... 31 2 Registers ............................................................................................. 32 2.1 General registers......................................................................................................... 32 2.2 Control registers ......................................................................................................... 35 2.2.1 Program counter................................................................................................ 37 2.2.2 Loop registers.................................................................................................... 38 80-N2040-45 Rev. B 2 Hexagon V67 Programmer’s Reference Manual Contents 2.2.3 User status register............................................................................................ 38 2.2.4 Modifier registers.............................................................................................. 41 2.2.5 Predicate registers ............................................................................................. 42 2.2.6 Circular start registers....................................................................................... 43 2.2.7 User general pointer register............................................................................. 43 2.2.8 Global pointer ................................................................................................... 43 2.2.9 Cycle count registers......................................................................................... 44 2.2.10 Frame limit register......................................................................................... 44 2.2.11 Frame key register........................................................................................... 45 2.2.12 Packet count registers ..................................................................................... 45 2.2.13 Qtimer registers............................................................................................... 46 3 Instructions......................................................................................... 47 3.1 Instruction syntax ....................................................................................................... 47 3.2 Instruction classes....................................................................................................... 48 3.3 Instruction packets...................................................................................................... 49 3.3.1 Packet execution semantics............................................................................... 50 3.3.2 Sequencing semantics ....................................................................................... 50 3.3.3 Resource constraints ......................................................................................... 51 3.3.4 Grouping constraints......................................................................................... 52 3.3.5 Dependency constraints .................................................................................... 53 3.3.6 Ordering constraints.......................................................................................... 53 3.3.7 Alignment constraints ....................................................................................... 54 3.4 Instruction intrinsics ................................................................................................... 54 3.5 Compound instructions............................................................................................... 55 3.6 Duplex instructions..................................................................................................... 55 4 Data Processing ................................................................................. 56 4.1 Data types ................................................................................................................... 57 4.1.1 Fixed-point data ................................................................................................ 57 4.1.2 Floating-point data............................................................................................ 57 4.1.3 Complex data .................................................................................................... 57 4.1.4 Vector data ........................................................................................................ 57 4.2 Instruction options...................................................................................................... 59 4.2.1 Fractional scaling.............................................................................................. 59 4.2.2 Saturation .......................................................................................................... 59 4.2.3 Arithmetic rounding.......................................................................................... 59 4.2.4 Convergent rounding ........................................................................................ 60 4.2.5 Scaling for divide and square-root.................................................................... 60 4.3 XTYPE operations...................................................................................................... 61 4.3.1 ALU .................................................................................................................