1{{simdpp/title|to_int16}}
2{{conv/navbar}}
3{{dcl begin}}
4{{dcl |
5template<unsigned N, class E>
6int16<N, _DETAIL_> to_int16( Vec<N,E> a );
7}}
8{{dcl end}}
9
10Converts elements within a vector to 16-bit signed values.
11
12The implementation behaves as if the following set of overloads is provided:
13
14{{vset begin}}
15{{vset1 h | Vec }}
16{{vset1 | int8 }}
17{{vset1 | uint8 }}
18{{vset1 | int16 }}
19{{vset1 | uint16 }}
20{{vset1 | int32 }}
21{{vset1 | uint32 }}
22{{vset1 | int64 }}
23{{vset1 | uint64 }}
24{{vset1 | float32 }}
25{{vset1 | float64 }}
26{{vset end}}
27
28The return type is a [[types#expr|vector expression]].
29
30The conversion rules are as follows:
31* 8-bit signed integers are sign-extended to 16 bits.
32* 8-bit unsigned integers are zero-extended to 16 bits.
33* 32-bit and wider integers are truncated.
34* floating-point numbers are converted to integer values and truncated.
35* if floating-point value can not be represented in 16-bit signed integer, the behavior depends on the instruction set used.
36
37===Parameters===
38{{par begin}}
39{{par | a | vector to convert}}
40{{par end}}
41
42===Return value===
43A [[types#expr|vector expression]] evaluating to vector with values converted to 16-bit signed integers.
44
45===Equivalent operation===
46{{source|1=
47r0 = int16_t(a0)
48...
49rN = int16_t(aN)
50}}
51
52===See also===
53{{dsc begin}}
54{{dsc inc | conv/dsc to_uint16 }}
55{{dsc end}}
56