// +build go1.9

package bits

import (
	"math/bits"
)

// LeadingZeros64 returns the number of leading zero bits in x; the result is
// 64 for x == 0.
func LeadingZeros64(x uint64) uint64 {
	return uint64(bits.LeadingZeros64(x))
}

// LeadingZeros32 returns the number of leading zero bits in x; the result is
// 32 for x == 0.
func LeadingZeros32(x uint32) uint64 {
	return uint64(bits.LeadingZeros32(x))
}

// TrailingZeros64 returns the number of trailing zero bits in x; the result is
// 64 for x == 0.
func TrailingZeros64(x uint64) uint64 {
	return uint64(bits.TrailingZeros64(x))
}