Add enable_target_feature to ABM

This commit is contained in:
gingerBill
2022-05-30 16:08:06 +01:00
parent 68222cb8ab
commit 4e49d24df9
+4 -4
View File
@@ -3,21 +3,21 @@ package simd_x86
import "core:intrinsics" import "core:intrinsics"
@(require_results) @(require_results, enable_target_feature="lzcnt")
_lzcnt_u32 :: #force_inline proc "c" (x: u32) -> u32 { _lzcnt_u32 :: #force_inline proc "c" (x: u32) -> u32 {
return intrinsics.count_leading_zeros(x) return intrinsics.count_leading_zeros(x)
} }
@(require_results) @(require_results, enable_target_feature="popcnt")
_popcnt32 :: #force_inline proc "c" (x: u32) -> i32 { _popcnt32 :: #force_inline proc "c" (x: u32) -> i32 {
return i32(intrinsics.count_ones(x)) return i32(intrinsics.count_ones(x))
} }
when ODIN_ARCH == .amd64 { when ODIN_ARCH == .amd64 {
@(require_results) @(require_results, enable_target_feature="lzcnt")
_lzcnt_u64 :: #force_inline proc "c" (x: u64) -> u64 { _lzcnt_u64 :: #force_inline proc "c" (x: u64) -> u64 {
return intrinsics.count_leading_zeros(x) return intrinsics.count_leading_zeros(x)
} }
@(require_results) @(require_results, enable_target_feature="popcnt")
_popcnt64 :: #force_inline proc "c" (x: u64) -> i32 { _popcnt64 :: #force_inline proc "c" (x: u64) -> i32 {
return i32(intrinsics.count_ones(x)) return i32(intrinsics.count_ones(x))
} }