brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 4a6c6f2 Raw
82 lines · plain
1// REQUIRES: arm-emulator2 3// DEFINE: %{entry_point} = main4// DEFINE: %{compile} = mlir-opt %s \5// DEFINE: --pass-pipeline="builtin.module(func.func(convert-arm-sme-to-llvm),test-lower-to-llvm)"6// DEFINE: %{run} = %mcr_aarch64_cmd \7// DEFINE:  -march=aarch64 -mattr=+sve,+sme \8// DEFINE:  -e %{entry_point} -entry-point-result=void \9// DEFINE:  -shared-libs=%native_mlir_runner_utils,%native_mlir_c_runner_utils,%native_mlir_arm_runner_utils10 11// RUN: %{compile} | %{run} | FileCheck %s12 13func.func @checkSVL() {14  %svl_b = arm_sme.streaming_vl <byte>15  %svl_h = arm_sme.streaming_vl <half>16  %svl_w = arm_sme.streaming_vl <word>17  %svl_d = arm_sme.streaming_vl <double>18  vector.print str "SVL.b\n"19  vector.print %svl_b : index20  vector.print str "SVL.h\n"21  vector.print %svl_h : index22  vector.print str "SVL.w\n"23  vector.print %svl_w : index24  vector.print str "SVL.d\n"25  vector.print %svl_d : index26  return27}28 29func.func @setAndCheckSVL(%bits: i32) {30  func.call @setArmSVLBits(%bits) : (i32) -> ()31  func.call @checkSVL() : () -> ()32  return33}34 35func.func @main() {36  //      CHECK: SVL.b37  // CHECK-NEXT: 1638  //39  // CHECK-NEXT: SVL.h40  // CHECK-NEXT: 841  //42  // CHECK-NEXT: SVL.w43  // CHECK-NEXT: 444  //45  // CHECK-NEXT: SVL.d46  // CHECK-NEXT: 247  %c128 = arith.constant 128 : i3248  func.call @setAndCheckSVL(%c128) : (i32) -> ()49 50  //      CHECK: SVL.b51  // CHECK-NEXT: 3252  //53  // CHECK-NEXT: SVL.h54  // CHECK-NEXT: 1655  //56  // CHECK-NEXT: SVL.w57  // CHECK-NEXT: 858  //59  // CHECK-NEXT: SVL.d60  // CHECK-NEXT: 461  %c256 = arith.constant 256 : i3262  func.call @setAndCheckSVL(%c256) : (i32) -> ()63 64  //      CHECK: SVL.b65  // CHECK-NEXT: 6466  //67  // CHECK-NEXT: SVL.h68  // CHECK-NEXT: 3269  //70  // CHECK-NEXT: SVL.w71  // CHECK-NEXT: 1672  //73  // CHECK-NEXT: SVL.d74  // CHECK-NEXT: 875  %c512 = arith.constant 512 : i3276  func.call @setAndCheckSVL(%c512) : (i32) -> ()77 78  return79}80 81func.func private @setArmSVLBits(%bits : i32)82