### Summary

ansible_processor_threads_per_core shows incorrect information against AMD Genoa (AMD EPYC 9654P 96-Core Processor) based hosts. 

Issue Description :
ansible_processor_threads_per_core  returns 1 instead of 2, on a host where HT is enabled. command output of lscpu shows the right information. 

Setup module output:
```
"ansible_processor_threads_per_core": 1,
```
lscpu output:
```
Thread(s) per core:                 2
```
Ansible Versions:
```
ansible [core 2.11.6]
python version = 3.6.8
jinja version = 2.11.3
```
### Issue Type

Bug Report

### Component Name

yum

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.6]
python version = 3.6.8
jinja version = 2.11.3
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
Nothing returned
```


### OS / Environment

CentOS (CentOS Linux release 7.9.2009 (Core))

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)

```
ansible -i /tmp/inv all -m setup -a 'gather_subset=!all,!any,virtual,network,hardware'

### Expected Results

Expected : "ansible_processor_threads_per_core": 2,
Getting: ""ansible_processor_threads_per_core": 1,"

### Actual Results

```console
Details given as above
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
mounts = []
        
        bind_mounts = self._find_bind_mounts()
        uuids = self._lsblk_uuid()
        mtab_entries = self._mtab_entries()
        
        results = {}
        pool = ThreadPool(processes=min(len(mtab_entries), cpu_count()))
        maxtime = timeout.GATHER_TIMEOUT or timeout.DEFAULT_GATHER_TIMEOUT
        for fields in mtab_entries:
            
            fields = [self._replace_octal_escapes(field) for field in fields]
            device, mount, fstype, options = fields[0], fields[1], fields[2], fields[3]
            dump, passno = int(fields[4]), int(fields[5])
            if not device.startswith(('/', '\\')) and ':/' not in device or fstype == 'none':
                continue
            mount_info = {'mount': mount,
                          'device': device,
                          'fstype': fstype,
                          'options': options,
                          'dump': dump,
                          'passno': passno}
            if mount in bind_mounts:
                
                if not self.MTAB_BIND_MOUNT_RE.match(options):
                    mount_info['options'] += ",bind"
            results[mount] = {'info': mount_info,
                              'extra': pool.apply_async(self.get_mount_info, (mount, device, uuids)),
                              'timelimit': time.time() + maxtime}