mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Rename to non_temporaral_*
This commit is contained in:
@@ -414,7 +414,7 @@ _MM_TRANSPOSE4_PS :: #force_inline proc "c" (row0, row1, row2, row3: ^__m128) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_mm_stream_ps :: #force_inline proc "c" (addr: [^]f32, a: __m128) {
|
_mm_stream_ps :: #force_inline proc "c" (addr: [^]f32, a: __m128) {
|
||||||
intrinsics.nontemporal_store((^__m128)(addr), a)
|
intrinsics.non_temporal_store((^__m128)(addr), a)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -351,10 +351,10 @@ _mm_storel_epi64 :: #force_inline proc "c" (mem_addr: ^__m128i, a: __m128i) {
|
|||||||
intrinsics.mem_copy_non_overlapping(mem_addr, &a, 8)
|
intrinsics.mem_copy_non_overlapping(mem_addr, &a, 8)
|
||||||
}
|
}
|
||||||
_mm_stream_si128 :: #force_inline proc "c" (mem_addr: ^__m128i, a: __m128i) {
|
_mm_stream_si128 :: #force_inline proc "c" (mem_addr: ^__m128i, a: __m128i) {
|
||||||
intrinsics.nontemporal_store(mem_addr, a)
|
intrinsics.non_temporal_store(mem_addr, a)
|
||||||
}
|
}
|
||||||
_mm_stream_si32 :: #force_inline proc "c" (mem_addr: ^i32, a: i32) {
|
_mm_stream_si32 :: #force_inline proc "c" (mem_addr: ^i32, a: i32) {
|
||||||
intrinsics.nontemporal_store(mem_addr, a)
|
intrinsics.non_temporal_store(mem_addr, a)
|
||||||
}
|
}
|
||||||
_mm_move_epi64 :: #force_inline proc "c" (a: __m128i) -> __m128i {
|
_mm_move_epi64 :: #force_inline proc "c" (a: __m128i) -> __m128i {
|
||||||
zero := _mm_setzero_si128()
|
zero := _mm_setzero_si128()
|
||||||
@@ -694,7 +694,7 @@ _mm_loadl_pd :: #force_inline proc "c" (a: __m128d, mem_addr: ^f64) -> __m128d {
|
|||||||
return _mm_setr_pd(mem_addr^, simd.extract(a, 1))
|
return _mm_setr_pd(mem_addr^, simd.extract(a, 1))
|
||||||
}
|
}
|
||||||
_mm_stream_pd :: #force_inline proc "c" (mem_addr: ^f64, a: __m128d) {
|
_mm_stream_pd :: #force_inline proc "c" (mem_addr: ^f64, a: __m128d) {
|
||||||
intrinsics.nontemporal_store((^__m128d)(mem_addr), a)
|
intrinsics.non_temporal_store((^__m128d)(mem_addr), a)
|
||||||
}
|
}
|
||||||
_mm_store_sd :: #force_inline proc "c" (mem_addr: ^f64, a: __m128d) {
|
_mm_store_sd :: #force_inline proc "c" (mem_addr: ^f64, a: __m128d) {
|
||||||
mem_addr^ = simd.extract(a, 0)
|
mem_addr^ = simd.extract(a, 0)
|
||||||
|
|||||||
@@ -4021,7 +4021,7 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
|
|||||||
|
|
||||||
case BuiltinProc_volatile_store:
|
case BuiltinProc_volatile_store:
|
||||||
case BuiltinProc_unaligned_store:
|
case BuiltinProc_unaligned_store:
|
||||||
case BuiltinProc_nontemporal_store:
|
case BuiltinProc_non_temporal_store:
|
||||||
case BuiltinProc_atomic_store:
|
case BuiltinProc_atomic_store:
|
||||||
{
|
{
|
||||||
Type *elem = nullptr;
|
Type *elem = nullptr;
|
||||||
@@ -4069,7 +4069,7 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
|
|||||||
|
|
||||||
case BuiltinProc_volatile_load:
|
case BuiltinProc_volatile_load:
|
||||||
case BuiltinProc_unaligned_load:
|
case BuiltinProc_unaligned_load:
|
||||||
case BuiltinProc_nontemporal_load:
|
case BuiltinProc_non_temporal_load:
|
||||||
case BuiltinProc_atomic_load:
|
case BuiltinProc_atomic_load:
|
||||||
{
|
{
|
||||||
Type *elem = nullptr;
|
Type *elem = nullptr;
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ enum BuiltinProcId {
|
|||||||
|
|
||||||
BuiltinProc_unaligned_store,
|
BuiltinProc_unaligned_store,
|
||||||
BuiltinProc_unaligned_load,
|
BuiltinProc_unaligned_load,
|
||||||
BuiltinProc_nontemporal_store,
|
BuiltinProc_non_temporal_store,
|
||||||
BuiltinProc_nontemporal_load,
|
BuiltinProc_non_temporal_load,
|
||||||
|
|
||||||
BuiltinProc_prefetch_read_instruction,
|
BuiltinProc_prefetch_read_instruction,
|
||||||
BuiltinProc_prefetch_read_data,
|
BuiltinProc_prefetch_read_data,
|
||||||
@@ -369,8 +369,8 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
|
|||||||
|
|
||||||
{STR_LIT("unaligned_store"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
{STR_LIT("unaligned_store"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
||||||
{STR_LIT("unaligned_load"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
{STR_LIT("unaligned_load"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||||
{STR_LIT("nontemporal_store"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
{STR_LIT("non_temporal_store"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
||||||
{STR_LIT("nontemporal_load"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
{STR_LIT("non_temporal_load"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||||
|
|
||||||
{STR_LIT("prefetch_read_instruction"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
{STR_LIT("prefetch_read_instruction"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
||||||
{STR_LIT("prefetch_read_data"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
{STR_LIT("prefetch_read_data"), 2, false, Expr_Stmt, BuiltinProcPkg_intrinsics},
|
||||||
|
|||||||
@@ -2111,7 +2111,7 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv,
|
|||||||
return {};
|
return {};
|
||||||
|
|
||||||
case BuiltinProc_volatile_store:
|
case BuiltinProc_volatile_store:
|
||||||
case BuiltinProc_nontemporal_store:
|
case BuiltinProc_non_temporal_store:
|
||||||
case BuiltinProc_atomic_store:
|
case BuiltinProc_atomic_store:
|
||||||
case BuiltinProc_atomic_store_explicit: {
|
case BuiltinProc_atomic_store_explicit: {
|
||||||
lbValue dst = lb_build_expr(p, ce->args[0]);
|
lbValue dst = lb_build_expr(p, ce->args[0]);
|
||||||
@@ -2121,8 +2121,8 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv,
|
|||||||
LLVMValueRef instr = LLVMBuildStore(p->builder, val.value, dst.value);
|
LLVMValueRef instr = LLVMBuildStore(p->builder, val.value, dst.value);
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case BuiltinProc_volatile_store: LLVMSetVolatile(instr, true); break;
|
case BuiltinProc_volatile_store: LLVMSetVolatile(instr, true); break;
|
||||||
case BuiltinProc_nontemporal_store:
|
case BuiltinProc_non_temporal_store:
|
||||||
// TODO(bill): BuiltinProc_nontemporal_store
|
// TODO(bill): BuiltinProc_non_temporal_store
|
||||||
break;
|
break;
|
||||||
case BuiltinProc_atomic_store: LLVMSetOrdering(instr, LLVMAtomicOrderingSequentiallyConsistent); break;
|
case BuiltinProc_atomic_store: LLVMSetOrdering(instr, LLVMAtomicOrderingSequentiallyConsistent); break;
|
||||||
case BuiltinProc_atomic_store_explicit: LLVMSetOrdering(instr, llvm_atomic_ordering_from_odin(ce->args[2])); break;
|
case BuiltinProc_atomic_store_explicit: LLVMSetOrdering(instr, llvm_atomic_ordering_from_odin(ce->args[2])); break;
|
||||||
@@ -2134,7 +2134,7 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv,
|
|||||||
}
|
}
|
||||||
|
|
||||||
case BuiltinProc_volatile_load:
|
case BuiltinProc_volatile_load:
|
||||||
case BuiltinProc_nontemporal_load:
|
case BuiltinProc_non_temporal_load:
|
||||||
case BuiltinProc_atomic_load:
|
case BuiltinProc_atomic_load:
|
||||||
case BuiltinProc_atomic_load_explicit: {
|
case BuiltinProc_atomic_load_explicit: {
|
||||||
lbValue dst = lb_build_expr(p, ce->args[0]);
|
lbValue dst = lb_build_expr(p, ce->args[0]);
|
||||||
@@ -2142,8 +2142,8 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv,
|
|||||||
LLVMValueRef instr = LLVMBuildLoad(p->builder, dst.value, "");
|
LLVMValueRef instr = LLVMBuildLoad(p->builder, dst.value, "");
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case BuiltinProc_volatile_load: LLVMSetVolatile(instr, true); break;
|
case BuiltinProc_volatile_load: LLVMSetVolatile(instr, true); break;
|
||||||
case BuiltinProc_nontemporal_load:
|
case BuiltinProc_non_temporal_load:
|
||||||
// TODO(bill): BuiltinProc_nontemporal_load
|
// TODO(bill): BuiltinProc_non_temporal_load
|
||||||
break;
|
break;
|
||||||
case BuiltinProc_atomic_load: LLVMSetOrdering(instr, LLVMAtomicOrderingSequentiallyConsistent); break;
|
case BuiltinProc_atomic_load: LLVMSetOrdering(instr, LLVMAtomicOrderingSequentiallyConsistent); break;
|
||||||
case BuiltinProc_atomic_load_explicit: LLVMSetOrdering(instr, llvm_atomic_ordering_from_odin(ce->args[1])); break;
|
case BuiltinProc_atomic_load_explicit: LLVMSetOrdering(instr, llvm_atomic_ordering_from_odin(ce->args[1])); break;
|
||||||
|
|||||||
Reference in New Issue
Block a user