38 lines · plain
1// RUN: mlir-opt %s -cse -split-input-file -verify-diagnostics | FileCheck %s2 3// CHECK-LABEL: @nvvm_special_regs_clock4llvm.func @nvvm_special_regs_clock() -> !llvm.struct<(i32, i32)> {5 %0 = llvm.mlir.zero: !llvm.struct<(i32, i32)>6 // CHECK: {{.*}} = nvvm.read.ptx.sreg.clock7 %1 = nvvm.read.ptx.sreg.clock : i328 // CHECK: {{.*}} = nvvm.read.ptx.sreg.clock9 %2 = nvvm.read.ptx.sreg.clock : i3210 %4 = llvm.insertvalue %1, %0[0]: !llvm.struct<(i32, i32)>11 %5 = llvm.insertvalue %2, %4[1]: !llvm.struct<(i32, i32)>12 llvm.return %5: !llvm.struct<(i32, i32)>13}14 15// CHECK-LABEL: @nvvm_special_regs_clock6416llvm.func @nvvm_special_regs_clock64() -> !llvm.struct<(i64, i64)> {17 %0 = llvm.mlir.zero: !llvm.struct<(i64, i64)>18 // CHECK: {{.*}} = nvvm.read.ptx.sreg.clock6419 %1 = nvvm.read.ptx.sreg.clock64 : i6420 // CHECK: {{.*}} = nvvm.read.ptx.sreg.clock6421 %2 = nvvm.read.ptx.sreg.clock64 : i6422 %4 = llvm.insertvalue %1, %0[0]: !llvm.struct<(i64, i64)>23 %5 = llvm.insertvalue %2, %4[1]: !llvm.struct<(i64, i64)>24 llvm.return %5: !llvm.struct<(i64, i64)>25}26 27// CHECK-LABEL: @nvvm_special_regs_globaltimer28llvm.func @nvvm_special_regs_globaltimer() -> !llvm.struct<(i64, i64)> {29 %0 = llvm.mlir.zero: !llvm.struct<(i64, i64)>30 // CHECK: {{.*}} = nvvm.read.ptx.sreg.globaltimer31 %1 = nvvm.read.ptx.sreg.globaltimer : i6432 // CHECK: {{.*}} = nvvm.read.ptx.sreg.globaltimer33 %2 = nvvm.read.ptx.sreg.globaltimer : i6434 %4 = llvm.insertvalue %1, %0[0]: !llvm.struct<(i64, i64)>35 %5 = llvm.insertvalue %2, %4[1]: !llvm.struct<(i64, i64)>36 llvm.return %5: !llvm.struct<(i64, i64)>37}38