// 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
}