summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/f16c-schedule.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/f16c-schedule.ll')
-rw-r--r--llvm/test/CodeGen/X86/f16c-schedule.ll28
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/f16c-schedule.ll b/llvm/test/CodeGen/X86/f16c-schedule.ll
index f36937c3a45..1a17b8bdbca 100644
--- a/llvm/test/CodeGen/X86/f16c-schedule.ll
+++ b/llvm/test/CodeGen/X86/f16c-schedule.ll
@@ -1,4 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+f16c | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=IVY
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
@@ -6,6 +7,13 @@
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1
define <4 x float> @test_vcvtph2ps_128(<8 x i16> %a0, <8 x i16> *%a1) {
+; GENERIC-LABEL: test_vcvtph2ps_128:
+; GENERIC: # BB#0:
+; GENERIC-NEXT: vcvtph2ps (%rdi), %xmm1 # sched: [7:1.00]
+; GENERIC-NEXT: vcvtph2ps %xmm0, %xmm0 # sched: [3:1.00]
+; GENERIC-NEXT: vaddps %xmm0, %xmm1, %xmm0 # sched: [3:1.00]
+; GENERIC-NEXT: retq # sched: [1:1.00]
+;
; IVY-LABEL: test_vcvtph2ps_128:
; IVY: # BB#0:
; IVY-NEXT: vcvtph2ps (%rdi), %xmm1 # sched: [7:1.00]
@@ -42,6 +50,13 @@ define <4 x float> @test_vcvtph2ps_128(<8 x i16> %a0, <8 x i16> *%a1) {
declare <4 x float> @llvm.x86.vcvtph2ps.128(<8 x i16>)
define <8 x float> @test_vcvtph2ps_256(<8 x i16> %a0, <8 x i16> *%a1) {
+; GENERIC-LABEL: test_vcvtph2ps_256:
+; GENERIC: # BB#0:
+; GENERIC-NEXT: vcvtph2ps (%rdi), %ymm1 # sched: [7:1.00]
+; GENERIC-NEXT: vcvtph2ps %xmm0, %ymm0 # sched: [3:1.00]
+; GENERIC-NEXT: vaddps %ymm0, %ymm1, %ymm0 # sched: [3:1.00]
+; GENERIC-NEXT: retq # sched: [1:1.00]
+;
; IVY-LABEL: test_vcvtph2ps_256:
; IVY: # BB#0:
; IVY-NEXT: vcvtph2ps (%rdi), %ymm1 # sched: [7:1.00]
@@ -78,6 +93,12 @@ define <8 x float> @test_vcvtph2ps_256(<8 x i16> %a0, <8 x i16> *%a1) {
declare <8 x float> @llvm.x86.vcvtph2ps.256(<8 x i16>)
define <8 x i16> @test_vcvtps2ph_128(<4 x float> %a0, <4 x float> %a1, <4 x i16> *%a2) {
+; GENERIC-LABEL: test_vcvtps2ph_128:
+; GENERIC: # BB#0:
+; GENERIC-NEXT: vcvtps2ph $0, %xmm0, %xmm0 # sched: [3:1.00]
+; GENERIC-NEXT: vcvtps2ph $0, %xmm1, (%rdi) # sched: [7:1.00]
+; GENERIC-NEXT: retq # sched: [1:1.00]
+;
; IVY-LABEL: test_vcvtps2ph_128:
; IVY: # BB#0:
; IVY-NEXT: vcvtps2ph $0, %xmm0, %xmm0 # sched: [3:1.00]
@@ -110,6 +131,13 @@ define <8 x i16> @test_vcvtps2ph_128(<4 x float> %a0, <4 x float> %a1, <4 x i16>
declare <8 x i16> @llvm.x86.vcvtps2ph.128(<4 x float>, i32)
define <8 x i16> @test_vcvtps2ph_256(<8 x float> %a0, <8 x float> %a1, <8 x i16> *%a2) {
+; GENERIC-LABEL: test_vcvtps2ph_256:
+; GENERIC: # BB#0:
+; GENERIC-NEXT: vcvtps2ph $0, %ymm0, %xmm0 # sched: [3:1.00]
+; GENERIC-NEXT: vcvtps2ph $0, %ymm1, (%rdi) # sched: [7:1.00]
+; GENERIC-NEXT: vzeroupper
+; GENERIC-NEXT: retq # sched: [1:1.00]
+;
; IVY-LABEL: test_vcvtps2ph_256:
; IVY: # BB#0:
; IVY-NEXT: vcvtps2ph $0, %ymm0, %xmm0 # sched: [3:1.00]
OpenPOWER on IntegriCloud