summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/fp16-instructions.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/ARM/fp16-instructions.ll')
-rw-r--r--llvm/test/CodeGen/ARM/fp16-instructions.ll40
1 files changed, 39 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/ARM/fp16-instructions.ll b/llvm/test/CodeGen/ARM/fp16-instructions.ll
index 75a11a53199..3aef5fc60fd 100644
--- a/llvm/test/CodeGen/ARM/fp16-instructions.ll
+++ b/llvm/test/CodeGen/ARM/fp16-instructions.ll
@@ -687,6 +687,7 @@ entry:
; CHECK-HARDFP-FULLFP16: vnmul.f16 s0, s0, s1
}
+; TODO:
; 28. VRINTA
; 29. VRINTM
; 30. VRINTN
@@ -694,11 +695,48 @@ entry:
; 32. VRINTR
; 33. VRINTX
; 34. VRINTZ
+
; 35. VSELEQ
+define half @select_cc1() {
+ %1 = fcmp nsz oeq half undef, 0xH0001
+ %2 = select i1 %1, half 0xHC000, half 0xH0002
+ ret half %2
+
+; CHECK-LABEL: select_cc1:
+; CHECK-HARDFP-FULLFP16: vseleq.f16 s0, s{{.}}, s{{.}}
+}
+
; 36. VSELGE
+define half @select_cc2() {
+ %1 = fcmp nsz oge half undef, 0xH0001
+ %2 = select i1 %1, half 0xHC000, half 0xH0002
+ ret half %2
+
+; CHECK-LABEL: select_cc2:
+; CHECK-HARDFP-FULLFP16: vselge.f16 s0, s{{.}}, s{{.}}
+}
+
; 37. VSELGT
+define half @select_cc3() {
+ %1 = fcmp nsz ogt half undef, 0xH0001
+ %2 = select i1 %1, half 0xHC000, half 0xH0002
+ ret half %2
+
+; CHECK-LABEL: select_cc3:
+; CHECK-HARDFP-FULLFP16: vselgt.f16 s0, s{{.}}, s{{.}}
+}
+
; 38. VSELVS
-; 39. VSQRT
+define half @select_cc4() {
+ %1 = fcmp nsz ueq half undef, 0xH0001
+ %2 = select i1 %1, half 0xHC000, half 0xH0002
+ ret half %2
+
+; CHECK-LABEL: select_cc4:
+; CHECK-HARDFP-FULLFP16: vselvs.f16 s0, s{{.}}, s{{.}}
+}
+
+; 39. VSQRT - TODO
; 40. VSUB
define float @Sub(float %a.coerce, float %b.coerce) {
OpenPOWER on IntegriCloud