| ; RUN: llc -O0 -mtriple=spirv64-unknown-unknown < %s | FileCheck %s |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown -filetype=obj < %s | spirv-val %} |
| |
| define spir_func i1 @ugt(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ugt |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp ugt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @ugt_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ugt_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp samesign ugt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @uge(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function uge |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp uge i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @uge_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function uge_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp samesign uge i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @ult(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ult |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp ult i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @ult_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ult_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp samesign ult i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @ule(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ule |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp ule i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @ule_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function ule_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp samesign ule i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sgt(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sgt |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp sgt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sgt_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sgt_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp samesign sgt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sge(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sge |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp sge i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sge_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sge_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp samesign sge i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @slt(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function slt |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp slt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @slt_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function slt_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalAnd |
| %r = icmp samesign slt i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sle(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sle |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp sle i1 %p, %q |
| ret i1 %r |
| } |
| |
| define spir_func i1 @sle_same_sign(i1 %p, i1 %q) addrspace(4) { |
| ; CHECK: Begin function sle_same_sign |
| ; CHECK: OpLogicalNotEqual |
| ; CHECK: OpLogicalOr |
| %r = icmp samesign sle i1 %p, %q |
| ret i1 %r |
| } |