LLVMTypeRef voidt;
LLVMTypeRef i1;
LLVMTypeRef i8;
+ LLVMTypeRef i16;
LLVMTypeRef i32;
+ LLVMTypeRef i64;
+ LLVMTypeRef f16;
LLVMTypeRef f32;
+ LLVMTypeRef f64;
LLVMTypeRef v4i32;
LLVMTypeRef v4f32;
- LLVMTypeRef v16i8;
+ LLVMTypeRef v8i32;
+
+ LLVMValueRef i32_0;
+ LLVMValueRef i32_1;
+ LLVMValueRef f32_0;
+ LLVMValueRef f32_1;
unsigned range_md_kind;
unsigned invariant_load_md_kind;
LLVMValueRef *values,
unsigned value_count,
unsigned value_stride,
- bool load);
+ bool load,
+ bool always_vector);
LLVMValueRef
ac_build_gather_values(struct ac_llvm_context *ctx,
LLVMValueRef *values,
unsigned inst_offset,
unsigned glc,
unsigned slc,
- bool readonly_memory);
+ bool can_speculate,
+ bool allow_smem);
LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
LLVMValueRef rsrc,
LLVMValueRef vindex,
LLVMValueRef voffset,
- bool readonly_memory);
+ bool can_speculate);
LLVMValueRef
ac_get_thread_id(struct ac_llvm_context *ctx);
bool has_ds_bpermute,
uint32_t mask,
int idx,
- LLVMValueRef lds,
LLVMValueRef val);
#define AC_SENDMSG_GS 2
LLVMValueRef arg,
LLVMTypeRef dst_type);
+LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a, LLVMValueRef b);
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value);
struct ac_export_args {