Back to PBT run

output.generic.mlir

"builtin.module"() ({
  "llvm.func"() <{CConv = #llvm.cconv<ccc>, function_type = !llvm.func<void (i16)>, linkage = #llvm.linkage<external>, sym_name = "zero_counts_0", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
  ^bb0(%arg2: i16):
    %8 = "llvm.intr.ctlz"(%arg2) <{is_zero_poison = true}> : (i16) -> i16
    %9 = "llvm.intr.cttz"(%arg2) <{is_zero_poison = true}> : (i16) -> i16
    %10 = "llvm.intr.cttz"(%arg2) <{is_zero_poison = true}> : (i16) -> i16
    "llvm.return"() : () -> ()
  }) : () -> ()
  "llvm.func"() <{CConv = #llvm.cconv<ccc>, function_type = !llvm.func<void (vector<4xi32>)>, linkage = #llvm.linkage<external>, passthrough = ["nounwind"], sym_name = "zero_counts_1", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
  ^bb0(%arg1: vector<4xi32>):
    %4 = "llvm.intr.ctlz"(%arg1) <{is_zero_poison = true}> : (vector<4xi32>) -> vector<4xi32>
    %5 = "llvm.intr.cttz"(%arg1) <{is_zero_poison = true}> : (vector<4xi32>) -> vector<4xi32>
    %6 = "arith.muli"(%arg1, %arg1) <{overflowFlags = #arith.overflow<none>}> : (vector<4xi32>, vector<4xi32>) -> vector<4xi32>
    %7 = "math.ctlz"(%arg1) : (vector<4xi32>) -> vector<4xi32>
    "llvm.return"() : () -> ()
  }) : () -> ()
  "llvm.func"() <{CConv = #llvm.cconv<ccc>, function_type = !llvm.func<void (i32)>, linkage = #llvm.linkage<external>, sym_name = "zero_counts_2", unnamed_addr = 0 : i64, visibility_ = 0 : i64}> ({
  ^bb0(%arg0: i32):
    %0 = "math.cttz"(%arg0) : (i32) -> i32
    %1 = "math.ctlz"(%arg0) : (i32) -> i32
    %2 = "llvm.intr.cttz"(%arg0) <{is_zero_poison = true}> : (i32) -> i32
    %3 = "math.ctlz"(%arg0) : (i32) -> i32
    "llvm.return"() : () -> ()
  }) : () -> ()
}) : () -> ()