Displaying 3 results from an estimated 3 matches for "complex_float".
2010 Apr 02
2
[LLVMdev] Problem returning aggregate struct (complex number) by value
...at }
define %0 @test600() {
entry:
ret %0 { float 4.200000e+01, float 3.500000e+01 }
}
Running that through llc, the x86-64 assembly looks like this (abbreviated):
movss LCPI72_0(%rip), %xmm0
movss LCPI72_1(%rip), %xmm1
ret
Now, if I write a C function that does the same thing:
struct complex_float {
float real;
float imag;
};
static struct complex_float foo()
{
struct complex_float x = {42.0, 35.0};
return x;
}
The assembly code looks like this (compiled with GCC and disassembled by
GDB):
0x00000001000010ac <foo+0>: push %rbp
0x00000001000010ad <foo+1>: mov...
2014 Jan 16
3
[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
.../* Flip the target bit of each basis state */
reg->node[i].state ^= ((MAX_UNSIGNED) 1 << target);
}
The code is writing to the 'state' field. The data structures look like this:
typedef struct quantum_matrix_struct quantum_matrix;
struct quantum_reg_node_struct
{
COMPLEX_FLOAT amplitude; /* alpha_j */
MAX_UNSIGNED state; /* j */
};
typedef struct quantum_reg_node_struct quantum_reg_node;
/* The quantum register */
struct quantum_reg_struct
{
int width; /* number of qubits in the qureg */
int size; /* number of non-zero vectors */
int hashw; /* w...
2014 Jan 16
3
[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
On Wed, Jan 15, 2014 at 5:30 PM, Nadav Rotem <nrotem at apple.com> wrote:
> Was the vectorizer successful in unrolling the loop in quantum_sigma_x? I
> wonder if 'size’ is typically high or low.
No. The vectorizer stated that it wasn't going to bother with the loop
because it wasn't profitable. Specifically:
LV: Checking a loop in "quantum_sigma_x"
LV: Found a