Преглед на файлове

gallivm: Add function lp_bld_gather_values()

tags/i965-primitive-restart-v2
Tom Stellard преди 13 години
родител
ревизия
5204974462
променени са 2 файла, в които са добавени 21 реда и са изтрити 0 реда
  1. 17
    0
      src/gallium/auxiliary/gallivm/lp_bld_gather.c
  2. 4
    0
      src/gallium/auxiliary/gallivm/lp_bld_gather.h

+ 17
- 0
src/gallium/auxiliary/gallivm/lp_bld_gather.c Целия файл

@@ -147,3 +147,20 @@ lp_build_gather(struct gallivm_state *gallivm,

return res;
}

LLVMValueRef
lp_build_gather_values(struct gallivm_state * gallivm,
LLVMValueRef * values,
unsigned value_count)
{
LLVMTypeRef vec_type = LLVMVectorType(LLVMTypeOf(values[0]), value_count);
LLVMBuilderRef builder = gallivm->builder;
LLVMValueRef vec = LLVMGetUndef(vec_type);
unsigned i;

for (i = 0; i < value_count; i++) {
LLVMValueRef index = lp_build_const_int32(gallivm, i);
vec = LLVMBuildInsertElement(builder, vec, values[i], index, "");
}
return vec;
}

+ 4
- 0
src/gallium/auxiliary/gallivm/lp_bld_gather.h Целия файл

@@ -57,5 +57,9 @@ lp_build_gather(struct gallivm_state *gallivm,
LLVMValueRef base_ptr,
LLVMValueRef offsets);

LLVMValueRef
lp_build_gather_values(struct gallivm_state * gallivm,
LLVMValueRef * values,
unsigned value_count);

#endif /* LP_BLD_GATHER_H_ */

Loading…
Отказ
Запис