| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple=x86_64-- -run-pass x86-fixup-inst-tuning -mcpu=znver1 -o - %s | FileCheck %s --check-prefix=ZNVER |
| # RUN: llc -mtriple=x86_64-- -run-pass x86-fixup-inst-tuning -mcpu=znver3 -o - %s | FileCheck %s --check-prefix=ZNVER |
| # RUN: llc -mtriple=x86_64-- -run-pass x86-fixup-inst-tuning -mcpu=haswell -o - %s | FileCheck %s --check-prefix=INTEL |
| # RUN: llc -mtriple=x86_64-- -run-pass x86-fixup-inst-tuning -mcpu=alderlake -o - %s | FileCheck %s --check-prefix=INTEL |
| |
| --- | |
| define void @test_vpermq_0x44() { ret void } |
| define void @test_vpermpd_0x44() { ret void } |
| define void @test_vpermq_other_imm() { ret void } |
| ... |
| --- |
| name: test_vpermq_0x44 |
| body: | |
| bb.0: |
| liveins: $ymm0 |
| ; ZNVER-LABEL: name: test_vpermq_0x44 |
| ; ZNVER: liveins: $ymm0 |
| ; ZNVER-NEXT: {{ $}} |
| ; ZNVER-NEXT: $ymm0 = VINSERTI128rri $ymm0, $xmm0, 1 |
| ; ZNVER-NEXT: RET64 $ymm0 |
| ; |
| ; INTEL-LABEL: name: test_vpermq_0x44 |
| ; INTEL: liveins: $ymm0 |
| ; INTEL-NEXT: {{ $}} |
| ; INTEL-NEXT: $ymm0 = VPERMQYri $ymm0, 68 |
| ; INTEL-NEXT: RET64 $ymm0 |
| $ymm0 = VPERMQYri $ymm0, 68 |
| RET64 $ymm0 |
| ... |
| --- |
| name: test_vpermpd_0x44 |
| body: | |
| bb.0: |
| liveins: $ymm0 |
| ; ZNVER-LABEL: name: test_vpermpd_0x44 |
| ; ZNVER: liveins: $ymm0 |
| ; ZNVER-NEXT: {{ $}} |
| ; ZNVER-NEXT: $ymm0 = VINSERTF128rri $ymm0, $xmm0, 1 |
| ; ZNVER-NEXT: RET64 $ymm0 |
| ; |
| ; INTEL-LABEL: name: test_vpermpd_0x44 |
| ; INTEL: liveins: $ymm0 |
| ; INTEL-NEXT: {{ $}} |
| ; INTEL-NEXT: $ymm0 = VPERMPDYri $ymm0, 68 |
| ; INTEL-NEXT: RET64 $ymm0 |
| $ymm0 = VPERMPDYri $ymm0, 68 |
| RET64 $ymm0 |
| ... |
| --- |
| name: test_vpermq_other_imm |
| body: | |
| bb.0: |
| liveins: $ymm0, $ymm1 |
| ; ZNVER-LABEL: name: test_vpermq_other_imm |
| ; ZNVER: liveins: $ymm0, $ymm1 |
| ; ZNVER-NEXT: {{ $}} |
| ; ZNVER-NEXT: $ymm0 = VPERMQYri $ymm0, 228 |
| ; ZNVER-NEXT: $ymm1 = VPERMQYri $ymm1, 0 |
| ; ZNVER-NEXT: RET64 $ymm0, $ymm1 |
| ; |
| ; INTEL-LABEL: name: test_vpermq_other_imm |
| ; INTEL: liveins: $ymm0, $ymm1 |
| ; INTEL-NEXT: {{ $}} |
| ; INTEL-NEXT: $ymm0 = VPERMQYri $ymm0, 228 |
| ; INTEL-NEXT: $ymm1 = VPERMQYri $ymm1, 0 |
| ; INTEL-NEXT: RET64 $ymm0, $ymm1 |
| $ymm0 = VPERMQYri $ymm0, 228 |
| $ymm1 = VPERMQYri $ymm1, 0 |
| RET64 $ymm0, $ymm1 |
| ... |