llvm/mlir/test/Dialect/DLTI/valid.mlir

// RUN: mlir-opt -split-input-file %s | FileCheck %s


// CHECK:      module attributes {
// CHECK-SAME:   dlti.map = #dlti.map<
// CHECK-SAME:     #dlti.dl_entry<"magic_num", 42 : i32>,
// CHECK-SAME:     #dlti.dl_entry<"magic_num_float", 4.242000e+01 : f32>,
// CHECK-SAME:     #dlti.dl_entry<"magic_type", i32>,
// CHECK-SAME:     #dlti.dl_entry<i32,
// CHECK-SAME:       #dlti.map<#dlti.dl_entry<"bitwidth", 32 : i32>>>
// CHECK-SAME:   >} {
// CHECK:      }
module attributes {
  dlti.map = #dlti.map<
    #dlti.dl_entry<"magic_num", 42 : i32>,
    #dlti.dl_entry<"magic_num_float", 42.42 : f32>,
    #dlti.dl_entry<"magic_type", i32>,
    #dlti.dl_entry<i32, #dlti.map<#dlti.dl_entry<"bitwidth", 32 : i32>>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.map = #dlti.map<
// CHECK-SAME:    #dlti.dl_entry<"CPU", #dlti.map<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>>,
// CHECK-SAME:    #dlti.dl_entry<"GPU", #dlti.map<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.map = #dlti.map<
    #dlti.dl_entry<"CPU", #dlti.map<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>>,
    #dlti.dl_entry<"GPU", #dlti.map<
      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 8192 : i32>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i32>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 8192 : i32>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i64>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 8192 : i64>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : i64>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 8192 : i64>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 64 : i32>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 64 : i32>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 128 : i32>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 64 : i64>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 128 : i64>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 64 : i64>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 128 : i64>>
  >} {}

// -----

// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 64 : i64>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 128 : i64>>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 64 : i64>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 128 : i64>>
  >} {}

// -----

// Check values of mixed type
//
// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : ui32>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", "128">>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", 4096 : ui32>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", "128">>
  >} {}

// -----

// Check values of mixed type
//
// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"max_vector_op_width", 4.096000e+03 : f32>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", "128">>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"max_vector_op_width", 4096.0 : f32>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", "128">>
  >} {}


// -----

// Check values of mixed type
//
// CHECK:      module attributes {
// CHECK-SAME:  dlti.target_system_spec = #dlti.target_system_spec<
// CHECK-SAME:    "CPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"vector_unit", #dlti.map<
// CHECK-SAME:        #dlti.dl_entry<"max_op_width", 4.096000e+03 : f32>>>>,
// CHECK-SAME:    "GPU" : #dlti.target_device_spec<
// CHECK-SAME:      #dlti.dl_entry<"L1_cache_size_in_bytes", "128">>
// CHECK-SAME:  >} {
// CHECK:        }
module attributes {
  dlti.target_system_spec = #dlti.target_system_spec<
    "CPU": #dlti.target_device_spec<
      #dlti.dl_entry<"vector_unit", #dlti.map<
        #dlti.dl_entry<"max_op_width", 4096.0 : f32>>>>,
    "GPU": #dlti.target_device_spec<
      #dlti.dl_entry<"L1_cache_size_in_bytes", "128">>
  >} {}


// -----

// CHECK: "test.op_with_dlti_map"() ({
// CHECK: }) {dlti.map = #dlti.map<#dlti.dl_entry<"dlti.unknown_id", 42 : i64>>}
"test.op_with_dlti_map"() ({
}) { dlti.map = #dlti.map<#dlti.dl_entry<"dlti.unknown_id", 42>> } : () -> ()

// -----

// CHECK: "test.op_with_dlti_map"() ({
// CHECK: }) {dlti.map = #dlti.map<#dlti.dl_entry<i32, 42 : i64>>}
"test.op_with_dlti_map"() ({
}) { dlti.map = #dlti.map<#dlti.dl_entry<i32, 42>> } : () -> ()