| // RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s |
| |
| // CHECK-LABEL: @test_nvvm_elect_sync |
| llvm.func @test_nvvm_elect_sync() -> i1 { |
| // CHECK: %[[RES:.*]] = call { i32, i1 } @llvm.nvvm.elect.sync(i32 -1) |
| // CHECK-NEXT: %[[PRED:.*]] = extractvalue { i32, i1 } %[[RES]], 1 |
| // CHECK-NEXT: ret i1 %[[PRED]] |
| %0 = nvvm.elect.sync -> i1 |
| llvm.return %0 : i1 |
| } |
| |
| // CHECK-LABEL: @test_nvvm_elect_sync_mask |
| llvm.func @test_nvvm_elect_sync_mask(%mask : i32) -> i1 { |
| // CHECK: %[[RES:.*]] = call { i32, i1 } @llvm.nvvm.elect.sync(i32 %0) |
| // CHECK-NEXT: %[[PRED:.*]] = extractvalue { i32, i1 } %[[RES]], 1 |
| // CHECK-NEXT: ret i1 %[[PRED]] |
| %0 = nvvm.elect.sync %mask -> i1 |
| llvm.return %0 : i1 |
| } |
| |