brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · aab2dce Raw
94 lines · plain
1// RUN: mlir-opt -convert-spirv-to-llvm %s | FileCheck %s2 3//===----------------------------------------------------------------------===//4// spirv.LogicalEqual5//===----------------------------------------------------------------------===//6 7// CHECK-LABEL: @logical_equal_scalar8spirv.func @logical_equal_scalar(%arg0: i1, %arg1: i1) "None" {9  // CHECK: llvm.icmp "eq" %{{.*}}, %{{.*}} : i110  %0 = spirv.LogicalEqual %arg0, %arg1 : i111  spirv.Return12}13 14// CHECK-LABEL: @logical_equal_vector15spirv.func @logical_equal_vector(%arg0: vector<4xi1>, %arg1: vector<4xi1>) "None" {16  // CHECK: llvm.icmp "eq" %{{.*}}, %{{.*}} : vector<4xi1>17  %0 = spirv.LogicalEqual %arg0, %arg1 : vector<4xi1>18  spirv.Return19}20 21//===----------------------------------------------------------------------===//22// spirv.LogicalNotEqual23//===----------------------------------------------------------------------===//24 25// CHECK-LABEL: @logical_not_equal_scalar26spirv.func @logical_not_equal_scalar(%arg0: i1, %arg1: i1) "None" {27  // CHECK: llvm.icmp "ne" %{{.*}}, %{{.*}} : i128  %0 = spirv.LogicalNotEqual %arg0, %arg1 : i129  spirv.Return30}31 32// CHECK-LABEL: @logical_not_equal_vector33spirv.func @logical_not_equal_vector(%arg0: vector<4xi1>, %arg1: vector<4xi1>) "None" {34  // CHECK: llvm.icmp "ne" %{{.*}}, %{{.*}} : vector<4xi1>35  %0 = spirv.LogicalNotEqual %arg0, %arg1 : vector<4xi1>36  spirv.Return37}38 39//===----------------------------------------------------------------------===//40// spirv.LogicalNot41//===----------------------------------------------------------------------===//42 43// CHECK-LABEL: @logical_not_scalar44spirv.func @logical_not_scalar(%arg0: i1) "None" {45  // CHECK: %[[CONST:.*]] = llvm.mlir.constant(true) : i146  // CHECK: llvm.xor %{{.*}}, %[[CONST]] : i147  %0 = spirv.LogicalNot %arg0 : i148  spirv.Return49}50 51// CHECK-LABEL: @logical_not_vector52spirv.func @logical_not_vector(%arg0: vector<4xi1>) "None" {53  // CHECK: %[[CONST:.*]] = llvm.mlir.constant(dense<true> : vector<4xi1>) : vector<4xi1>54  // CHECK: llvm.xor %{{.*}}, %[[CONST]] : vector<4xi1>55  %0 = spirv.LogicalNot %arg0 : vector<4xi1>56  spirv.Return57}58 59//===----------------------------------------------------------------------===//60// spirv.LogicalAnd61//===----------------------------------------------------------------------===//62 63// CHECK-LABEL: @logical_and_scalar64spirv.func @logical_and_scalar(%arg0: i1, %arg1: i1) "None" {65  // CHECK: llvm.and %{{.*}}, %{{.*}} : i166  %0 = spirv.LogicalAnd %arg0, %arg1 : i167  spirv.Return68}69 70// CHECK-LABEL: @logical_and_vector71spirv.func @logical_and_vector(%arg0: vector<4xi1>, %arg1: vector<4xi1>) "None" {72  // CHECK: llvm.and %{{.*}}, %{{.*}} : vector<4xi1>73  %0 = spirv.LogicalAnd %arg0, %arg1 : vector<4xi1>74  spirv.Return75}76 77//===----------------------------------------------------------------------===//78// spirv.LogicalOr79//===----------------------------------------------------------------------===//80 81// CHECK-LABEL: @logical_or_scalar82spirv.func @logical_or_scalar(%arg0: i1, %arg1: i1) "None" {83  // CHECK: llvm.or %{{.*}}, %{{.*}} : i184  %0 = spirv.LogicalOr %arg0, %arg1 : i185  spirv.Return86}87 88// CHECK-LABEL: @logical_or_vector89spirv.func @logical_or_vector(%arg0: vector<4xi1>, %arg1: vector<4xi1>) "None" {90  // CHECK: llvm.or %{{.*}}, %{{.*}} : vector<4xi1>91  %0 = spirv.LogicalOr %arg0, %arg1 : vector<4xi1>92  spirv.Return93}94