Repository: rust
Issue: AVX512VAES on AMD EPYC gives `LLVM ERROR: Do not know how to split the result of this operator `
Labels: A-LLVM,T-compiler,C-bug,A-target-feature

<!--
Thank you for filing a bug report! 🐛 Please provide a short summary of the bug,
along with any information you feel relevant to replicating the bug.
-->

I tried this code:

https://github.com/tkaitchuck/aHash/compare/master...SchrodingerZhu:aHash:master

I tried to run test with 
```bash
cargo test  --release --features=vaes
```
Unfortunately, I got
```
---- src/random_state.rs - random_state::RandomState::hash_one (line 324) stdout ----
LLVM ERROR: Do not know how to split the result of this operator!

Couldn't compile the test.
---- src/random_state.rs - random_state::RandomState::hash_one (line 424) stdout ----
LLVM ERROR: Do not know how to split the result of this operator!

Couldn't compile the test.
---- src/random_state.rs - random_state::RandomState::hash_one (line 414) stdout ----
LLVM ERROR: Do not know how to split the result of this operator!

Couldn't compile the test.
---- src/random_state.rs - random_state::RandomState::hash_one (line 314) stdout ----
LLVM ERROR: Do not know how to split the result of this operator!

Couldn't compile the test.
---- src/lib.rs - (line 51) stdout ----
LLVM ERROR: Do not know how to split the result of this operator!

Couldn't compile the test.
```

If I mark the function as `inline(never)`, the problem just gone:
https://github.com/SchrodingerZhu/aHash/blob/705d68e0078c932443f71955d9db096a252d686b/src/aes_hash.rs#L136

My CPU:

```
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  128
  On-line CPU(s) list:   0-127
Vendor ID:               AuthenticAMD
  Model name:            AMD EPYC 7773X 64-Core Processor
    CPU family:          25
    Model:               1
    Thread(s) per core:  2
    Core(s) per socket:  64
    Socket(s):           1
    Stepping:            2
    Frequency boost:     enabled
    CPU(s) scaling MHz:  63%
    CPU max MHz:         3527.7339
    CPU min MHz:         1500.0000
    BogoMIPS:            4404.99
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 
                         fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 inv
                         pcid_single hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr 
                         rdpru wbnoinvd amd_ppin brs arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   2 MiB (64 instances)
  L1i:                   2 MiB (64 instances)
  L2:                    32 MiB (64 instances)
  L3:                    768 MiB (8 instances)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-127
Vulnerabilities:         
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected
```