diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-09-21 12:22:14 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-09-21 12:22:14 +0000 |
| commit | eebfecee4ff3536278cdf9bd2fa96205756f1de2 (patch) | |
| tree | 966085ecff6520bbe82f26633ce4614e0ee28e9c /llvm/test/CodeGen/X86 | |
| parent | a0c9cb1913d14bfcae8c102d2245f73f103f39af (diff) | |
| download | bcm5719-llvm-eebfecee4ff3536278cdf9bd2fa96205756f1de2.tar.gz bcm5719-llvm-eebfecee4ff3536278cdf9bd2fa96205756f1de2.zip | |
[X86] Add scheduling tests for AVX1 256-bit zero-idioms. NFC
llvm-svn: 342726
Diffstat (limited to 'llvm/test/CodeGen/X86')
| -rw-r--r-- | llvm/test/CodeGen/X86/avx-schedule.ll | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx-schedule.ll b/llvm/test/CodeGen/X86/avx-schedule.ll index ec811f9dd19..0d10c4830b5 100644 --- a/llvm/test/CodeGen/X86/avx-schedule.ll +++ b/llvm/test/CodeGen/X86/avx-schedule.ll @@ -5424,6 +5424,90 @@ define void @test_zeroupper() { call void @llvm.x86.avx.vzeroupper() ret void } + +define void @test_avx256_zero_idioms() { +; GENERIC-LABEL: test_avx256_zero_idioms: +; GENERIC: # %bb.0: +; GENERIC-NEXT: #APP +; GENERIC-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:1.00] +; GENERIC-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:1.00] +; GENERIC-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:1.00] +; GENERIC-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:1.00] +; GENERIC-NEXT: #NO_APP +; GENERIC-NEXT: retq # sched: [1:1.00] +; +; SANDY-LABEL: test_avx256_zero_idioms: +; SANDY: # %bb.0: +; SANDY-NEXT: #APP +; SANDY-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:1.00] +; SANDY-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:1.00] +; SANDY-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:1.00] +; SANDY-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:1.00] +; SANDY-NEXT: #NO_APP +; SANDY-NEXT: retq # sched: [1:1.00] +; +; HASWELL-LABEL: test_avx256_zero_idioms: +; HASWELL: # %bb.0: +; HASWELL-NEXT: #APP +; HASWELL-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:1.00] +; HASWELL-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:1.00] +; HASWELL-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:1.00] +; HASWELL-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:1.00] +; HASWELL-NEXT: #NO_APP +; HASWELL-NEXT: retq # sched: [7:1.00] +; +; BROADWELL-LABEL: test_avx256_zero_idioms: +; BROADWELL: # %bb.0: +; BROADWELL-NEXT: #APP +; BROADWELL-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:1.00] +; BROADWELL-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:1.00] +; BROADWELL-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:1.00] +; BROADWELL-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:1.00] +; BROADWELL-NEXT: #NO_APP +; BROADWELL-NEXT: retq # sched: [7:1.00] +; +; SKYLAKE-LABEL: test_avx256_zero_idioms: +; SKYLAKE: # %bb.0: +; SKYLAKE-NEXT: #APP +; SKYLAKE-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:0.33] +; SKYLAKE-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:0.33] +; SKYLAKE-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:0.33] +; SKYLAKE-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:0.33] +; SKYLAKE-NEXT: #NO_APP +; SKYLAKE-NEXT: retq # sched: [7:1.00] +; +; SKX-LABEL: test_avx256_zero_idioms: +; SKX: # %bb.0: +; SKX-NEXT: #APP +; SKX-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:0.33] +; SKX-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:0.33] +; SKX-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:0.33] +; SKX-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:0.33] +; SKX-NEXT: #NO_APP +; SKX-NEXT: retq # sched: [7:1.00] +; +; BTVER2-LABEL: test_avx256_zero_idioms: +; BTVER2: # %bb.0: +; BTVER2-NEXT: #APP +; BTVER2-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:1.00] +; BTVER2-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:1.00] +; BTVER2-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:1.00] +; BTVER2-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:1.00] +; BTVER2-NEXT: #NO_APP +; BTVER2-NEXT: retq # sched: [4:1.00] +; +; ZNVER1-LABEL: test_avx256_zero_idioms: +; ZNVER1: # %bb.0: +; ZNVER1-NEXT: #APP +; ZNVER1-NEXT: vxorps %ymm0, %ymm0, %ymm0 # sched: [1:0.25] +; ZNVER1-NEXT: vxorpd %ymm1, %ymm1, %ymm1 # sched: [1:0.25] +; ZNVER1-NEXT: vandnps %ymm2, %ymm2, %ymm2 # sched: [1:0.25] +; ZNVER1-NEXT: vandnpd %ymm3, %ymm3, %ymm3 # sched: [1:0.25] +; ZNVER1-NEXT: #NO_APP +; ZNVER1-NEXT: retq # sched: [1:0.50] + call void asm sideeffect "vxorps %ymm0, %ymm0, %ymm0\0Avxorpd %ymm1, %ymm1, %ymm1\0Avandnps %ymm2, %ymm2, %ymm2\0Avandnpd %ymm3, %ymm3, %ymm3", ""() + ret void +} declare void @llvm.x86.avx.vzeroupper() nounwind !0 = !{i32 1} |

