Lines Matching refs:vector
1 // RUN: mlir-opt %s -test-vector-to-vector-lowering | FileCheck %s
5 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
7 // CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<?xf32>, vector<16xf32>
8 // CHECK-NEXT: return %[[T]] : vector<16xf32>
9 func.func @maskedload0(%base: memref<?xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
11 %mask = vector.constant_mask [16] : vector<16xi1>
12 %ld = vector.maskedload %base[%c0], %mask, %pass_thru
13 : memref<?xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
14 return %ld : vector<16xf32>
19 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
21 // CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32>
22 // CHECK-NEXT: return %[[T]] : vector<16xf32>
23 func.func @maskedload1(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
25 %mask = vector.constant_mask [16] : vector<16xi1>
26 %ld = vector.maskedload %base[%c0], %mask, %pass_thru
27 : memref<16xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
28 return %ld : vector<16xf32>
33 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
34 // CHECK-NEXT: return %[[A1]] : vector<16xf32>
35 func.func @maskedload2(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
37 %mask = vector.constant_mask [0] : vector<16xi1>
38 %ld = vector.maskedload %base[%c0], %mask, %pass_thru
39 : memref<16xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
40 return %ld : vector<16xf32>
45 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
47 // CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<?xf32>, vector<16xf32>
48 // CHECK-NEXT: return %[[T]] : vector<16xf32>
49 func.func @maskedload3(%base: memref<?xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
51 %mask = vector.constant_mask [16] : vector<16xi1>
52 %ld = vector.maskedload %base[%c8], %mask, %pass_thru
53 : memref<?xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
54 return %ld : vector<16xf32>
59 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) {
61 // CHECK-NEXT: vector.store %[[A1]], %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32>
63 func.func @maskedstore1(%base: memref<16xf32>, %value: vector<16xf32>) {
65 %mask = vector.constant_mask [16] : vector<16xi1>
66 vector.maskedstore %base[%c0], %mask, %value : memref<16xf32>, vector<16xi1>, vector<16xf32>
72 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) {
74 func.func @maskedstore2(%base: memref<16xf32>, %value: vector<16xf32>) {
76 %mask = vector.constant_mask [0] : vector<16xi1>
77 vector.maskedstore %base[%c0], %mask, %value : memref<16xf32>, vector<16xi1>, vector<16xf32>
83 // CHECK-SAME: %[[A1:.*]]: vector<16xi32>,
84 // CHECK-SAME: %[[A2:.*]]: vector<16xf32>) -> vector<16xf32> {
86 // CHECK-NEXT: %[[M:.*]] = vector.constant_mask [16] : vector<16xi1>
87 …[G:.*]] = vector.gather %[[A0]][%[[C]]] [%[[A1]]], %[[M]], %[[A2]] : memref<16xf32>, vector<16xi32…
88 // CHECK-NEXT: return %[[G]] : vector<16xf32>
89 …nc.func @gather1(%base: memref<16xf32>, %indices: vector<16xi32>, %pass_thru: vector<16xf32>) -> v…
91 %mask = vector.constant_mask [16] : vector<16xi1>
92 %ld = vector.gather %base[%c0][%indices], %mask, %pass_thru
93 : memref<16xf32>, vector<16xi32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
94 return %ld : vector<16xf32>
99 // CHECK-SAME: %[[A1:.*]]: vector<16xi32>,
100 // CHECK-SAME: %[[A2:.*]]: vector<16xf32>) -> vector<16xf32> {
101 // CHECK-NEXT: return %[[A2]] : vector<16xf32>
102 …nc.func @gather2(%base: memref<16xf32>, %indices: vector<16xi32>, %pass_thru: vector<16xf32>) -> v…
104 %mask = vector.constant_mask [0] : vector<16xi1>
105 %ld = vector.gather %base[%c0][%indices], %mask, %pass_thru
106 : memref<16xf32>, vector<16xi32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
107 return %ld : vector<16xf32>
112 // CHECK-SAME: %[[A1:.*]]: vector<16xi32>,
113 // CHECK-SAME: %[[A2:.*]]: vector<16xf32>) {
115 // CHECK-NEXT: %[[M:.*]] = vector.constant_mask [16] : vector<16xi1>
116 // CHECK-NEXT: vector.scatter %[[A0]][%[[C]]] [%[[A1]]], %[[M]], %[[A2]] : memref<16xf32>, vec…
118 func.func @scatter1(%base: memref<16xf32>, %indices: vector<16xi32>, %value: vector<16xf32>) {
120 %mask = vector.constant_mask [16] : vector<16xi1>
121 vector.scatter %base[%c0][%indices], %mask, %value
122 : memref<16xf32>, vector<16xi32>, vector<16xi1>, vector<16xf32>
128 // CHECK-SAME: %[[A1:.*]]: vector<16xi32>,
129 // CHECK-SAME: %[[A2:.*]]: vector<16xf32>) {
131 func.func @scatter2(%base: memref<16xf32>, %indices: vector<16xi32>, %value: vector<16xf32>) {
133 %0 = vector.type_cast %base : memref<16xf32> to memref<vector<16xf32>>
134 %mask = vector.constant_mask [0] : vector<16xi1>
135 vector.scatter %base[%c0][%indices], %mask, %value
136 : memref<16xf32>, vector<16xi32>, vector<16xi1>, vector<16xf32>
142 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
144 // CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32>
145 // CHECK-NEXT: return %[[T]] : vector<16xf32>
146 func.func @expand1(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
148 %mask = vector.constant_mask [16] : vector<16xi1>
149 %ld = vector.expandload %base[%c0], %mask, %pass_thru
150 : memref<16xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
151 return %ld : vector<16xf32>
156 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> {
157 // CHECK-NEXT: return %[[A1]] : vector<16xf32>
158 func.func @expand2(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> {
160 %mask = vector.constant_mask [0] : vector<16xi1>
161 %ld = vector.expandload %base[%c0], %mask, %pass_thru
162 : memref<16xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
163 return %ld : vector<16xf32>
168 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) {
170 // CHECK-NEXT: vector.store %[[A1]], %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32>
172 func.func @compress1(%base: memref<16xf32>, %value: vector<16xf32>) {
174 %mask = vector.constant_mask [16] : vector<16xi1>
175 vector.compressstore %base[%c0], %mask, %value : memref<16xf32>, vector<16xi1>, vector<16xf32>
181 // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) {
183 func.func @compress2(%base: memref<16xf32>, %value: vector<16xf32>) {
185 %mask = vector.constant_mask [0] : vector<16xi1>
186 vector.compressstore %base[%c0], %mask, %value : memref<16xf32>, vector<16xi1>, vector<16xf32>