1// RUN: mlir-opt %s -test-lower-to-llvm | \ 2// RUN: mlir-runner -e entry -entry-point-result=void \ 3// RUN: -shared-libs=%mlir_c_runner_utils | \ 4// RUN: FileCheck %s 5 6func.func @entry() { 7 %v0 = arith.constant dense<[-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]> : vector<16xi4> 8 %v = vector.bitcast %v0 : vector<16xi4> to vector<16xsi4> 9 vector.print %v : vector<16xsi4> 10 // 11 // Test vector: 12 // 13 // CHECK: ( -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7 ) 14 15 %0 = vector.reduction <add>, %v : vector<16xsi4> into si4 16 vector.print %0 : si4 17 // CHECK: -8 18 19 %1 = vector.reduction <mul>, %v : vector<16xsi4> into si4 20 vector.print %1 : si4 21 // CHECK: 0 22 23 %2 = vector.reduction <minsi>, %v : vector<16xsi4> into si4 24 vector.print %2 : si4 25 // CHECK: -8 26 27 %3 = vector.reduction <maxsi>, %v : vector<16xsi4> into si4 28 vector.print %3 : si4 29 // CHECK: 7 30 31 %4 = vector.reduction <and>, %v : vector<16xsi4> into si4 32 vector.print %4 : si4 33 // CHECK: 0 34 35 %5 = vector.reduction <or>, %v : vector<16xsi4> into si4 36 vector.print %5 : si4 37 // CHECK: -1 38 39 %6 = vector.reduction <xor>, %v : vector<16xsi4> into si4 40 vector.print %6 : si4 41 // CHECK: 0 42 43 return 44} 45