}
 
 func TestChanSendSelectBarrier(t *testing.T) {
+       t.Parallel()
        testChanSendBarrier(true)
 }
 
 func TestChanSendBarrier(t *testing.T) {
+       t.Parallel()
        testChanSendBarrier(false)
 }
 
 func testChanSendBarrier(useSelect bool) {
        var wg sync.WaitGroup
-       var globalMu sync.Mutex
        outer := 100
        inner := 100000
        if testing.Short() || runtime.GOARCH == "wasm" {
                                if !ok {
                                        panic(1)
                                }
-                               garbage = make([]byte, 1<<10)
+                               garbage = makeByte()
                        }
-                       globalMu.Lock()
-                       global = garbage
-                       globalMu.Unlock()
+                       _ = garbage
                }()
        }
        wg.Wait()
 }
+
+//go:noinline
+func makeByte() []byte {
+       return make([]byte, 1<<10)
+}
 
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       testenv.ParallelOn64Bit(t)
        h := newHashSet()
        var b [3]byte
        for i := 0; i < 256; i++ {
 
 // Different length strings of all zeros have distinct hashes.
 func TestSmhasherZeros(t *testing.T) {
+       t.Parallel()
        N := 256 * 1024
        if testing.Short() {
                N = 1024
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       testenv.ParallelOn64Bit(t)
        h := newHashSet()
        for n := 2; n <= 16; n++ {
                twoNonZero(h, n)
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       t.Parallel()
        r := rand.New(rand.NewSource(1234))
        const REPEAT = 8
        const N = 1000000
        if testing.Short() {
                t.Skip("Skipping in short mode")
        }
+       t.Parallel()
        h := newHashSet()
        sparse(t, h, 32, 6)
        sparse(t, h, 40, 6)
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       testenv.ParallelOn64Bit(t)
        h := newHashSet()
        permutation(t, h, []uint32{0, 1, 2, 3, 4, 5, 6, 7}, 8)
        permutation(t, h, []uint32{0, 1 << 29, 2 << 29, 3 << 29, 4 << 29, 5 << 29, 6 << 29, 7 << 29}, 8)
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       t.Parallel()
        avalancheTest1(t, &BytesKey{make([]byte, 2)})
        avalancheTest1(t, &BytesKey{make([]byte, 4)})
        avalancheTest1(t, &BytesKey{make([]byte, 8)})
        if race.Enabled {
                t.Skip("Too long for race mode")
        }
+       t.Parallel()
        h := newHashSet()
        t.Logf("32 bit keys")
        windowed(t, h, &Int32Key{})
        if testing.Short() {
                t.Skip("Skipping in short mode")
        }
+       t.Parallel()
        h := newHashSet()
        text(t, h, "Foo", "Bar")
        text(t, h, "FooBar", "")
        if testing.Short() {
                t.Skip("Skipping in short mode")
        }
+       t.Parallel()
        for i := 0; i < 16; i++ {
                for j := 0; j < 16; j++ {
                        if j == i {