Loads a vector from four 4-byte signed integer values at the given memory address, with sign extension to 8-byte signed integer values.
d=vec_ldia(a, b)
d=vec_ldiaa(a, b)
The following table describes the types of the returned value and the function arguments.
d | a | b |
---|---|---|
vector4double | long | int* |
The effective address (EA) is the sum of a and b. The effective address is truncated to a 16-byte alignment. The contents of the 16 bytes starting at the effective address are loaded from memory. They are then converted from four 4-byte signed integer values to four 8-byte signed integer values before being saved in the result value.
vec_ldiaa generates an exception (SIGBUS) if the effective address is not aligned to a 16-byte memory boundary.
d[0] = (long) Memory_4B[EA]
d[1] = (long) Memory_4B[EA+4]
d[2] = (long) Memory_4B[EA+8]
d[3] = (long) Memory_4B[EA+12]
Memory values: (10,
-20, 30, -40)
Convert result values d to IEEE floating point numbers using: d2
= vec_cfid(d)
d2: (10.0, -20.0, 30.0,
-40.0)