brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.2 KiB · 207a222 Raw
388 lines · plain
1;RUN: llc -mtriple=arm-eabi -mattr=+v7 -mattr=+neon %s -o - | FileCheck %s2 3;ALIGN = 14;SIZE  = 645;TYPE  = <8 x i8>6define void @v64_v8i8_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {7;CHECK-LABEL: v64_v8i8_1:8entry:9;CHECK: vld1.810  %v1 = load  <8 x i8>,  ptr %in, align 111;CHECK: vst1.812  store <8 x i8> %v1, ptr %out, align 113  ret void14}15 16 17;ALIGN = 118;SIZE  = 6419;TYPE  = <4 x i16>20define void @v64_v4i16_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {21;CHECK-LABEL: v64_v4i16_1:22entry:23;CHECK: vld1.824  %v1 = load  <4 x i16>,  ptr %in, align 125;CHECK: vst1.826  store <4 x i16> %v1, ptr %out, align 127  ret void28}29 30 31;ALIGN = 132;SIZE  = 6433;TYPE  = <2 x i32>34define void @v64_v2i32_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {35;CHECK-LABEL: v64_v2i32_1:36entry:37;CHECK: vld1.838  %v1 = load  <2 x i32>,  ptr %in, align 139;CHECK: vst1.840  store <2 x i32> %v1, ptr %out, align 141  ret void42}43 44 45;ALIGN = 146;SIZE  = 6447;TYPE  = <2 x float>48define void @v64_v2f32_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {49;CHECK-LABEL: v64_v2f32_1:50entry:51;CHECK: vld1.852  %v1 = load  <2 x float>,  ptr %in, align 153;CHECK: vst1.854  store <2 x float> %v1, ptr %out, align 155  ret void56}57 58 59;ALIGN = 160;SIZE  = 12861;TYPE  = <16 x i8>62define void @v128_v16i8_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {63;CHECK-LABEL: v128_v16i8_1:64entry:65;CHECK: vld1.866  %v1 = load  <16 x i8>,  ptr %in, align 167;CHECK: vst1.868  store <16 x i8> %v1, ptr %out, align 169  ret void70}71 72 73;ALIGN = 174;SIZE  = 12875;TYPE  = <8 x i16>76define void @v128_v8i16_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {77;CHECK-LABEL: v128_v8i16_1:78entry:79;CHECK: vld1.880  %v1 = load  <8 x i16>,  ptr %in, align 181;CHECK: vst1.882  store <8 x i16> %v1, ptr %out, align 183  ret void84}85 86 87;ALIGN = 188;SIZE  = 12889;TYPE  = <4 x i32>90define void @v128_v4i32_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {91;CHECK-LABEL: v128_v4i32_1:92entry:93;CHECK: vld1.894  %v1 = load  <4 x i32>,  ptr %in, align 195;CHECK: vst1.896  store <4 x i32> %v1, ptr %out, align 197  ret void98}99 100 101;ALIGN = 1102;SIZE  = 128103;TYPE  = <2 x i64>104define void @v128_v2i64_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {105;CHECK-LABEL: v128_v2i64_1:106entry:107;CHECK: vld1.8108  %v1 = load  <2 x i64>,  ptr %in, align 1109;CHECK: vst1.8110  store <2 x i64> %v1, ptr %out, align 1111  ret void112}113 114 115;ALIGN = 1116;SIZE  = 128117;TYPE  = <4 x float>118define void @v128_v4f32_1(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {119;CHECK-LABEL: v128_v4f32_1:120entry:121;CHECK: vld1.8122  %v1 = load  <4 x float>,  ptr %in, align 1123;CHECK: vst1.8124  store <4 x float> %v1, ptr %out, align 1125  ret void126}127 128 129;ALIGN = 2130;SIZE  = 64131;TYPE  = <8 x i8>132define void @v64_v8i8_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {133;CHECK-LABEL: v64_v8i8_2:134entry:135;CHECK: vld1.16136  %v1 = load  <8 x i8>,  ptr %in, align 2137;CHECK: vst1.16138  store <8 x i8> %v1, ptr %out, align 2139  ret void140}141 142 143;ALIGN = 2144;SIZE  = 64145;TYPE  = <4 x i16>146define void @v64_v4i16_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {147;CHECK-LABEL: v64_v4i16_2:148entry:149;CHECK: vld1.16150  %v1 = load  <4 x i16>,  ptr %in, align 2151;CHECK: vst1.16152  store <4 x i16> %v1, ptr %out, align 2153  ret void154}155 156 157;ALIGN = 2158;SIZE  = 64159;TYPE  = <2 x i32>160define void @v64_v2i32_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {161;CHECK-LABEL: v64_v2i32_2:162entry:163;CHECK: vld1.16164  %v1 = load  <2 x i32>,  ptr %in, align 2165;CHECK: vst1.16166  store <2 x i32> %v1, ptr %out, align 2167  ret void168}169 170 171;ALIGN = 2172;SIZE  = 64173;TYPE  = <2 x float>174define void @v64_v2f32_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {175;CHECK-LABEL: v64_v2f32_2:176entry:177;CHECK: vld1.16178  %v1 = load  <2 x float>,  ptr %in, align 2179;CHECK: vst1.16180  store <2 x float> %v1, ptr %out, align 2181  ret void182}183 184 185;ALIGN = 2186;SIZE  = 128187;TYPE  = <16 x i8>188define void @v128_v16i8_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {189;CHECK-LABEL: v128_v16i8_2:190entry:191;CHECK: vld1.16192  %v1 = load  <16 x i8>,  ptr %in, align 2193;CHECK: vst1.16194  store <16 x i8> %v1, ptr %out, align 2195  ret void196}197 198 199;ALIGN = 2200;SIZE  = 128201;TYPE  = <8 x i16>202define void @v128_v8i16_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {203;CHECK-LABEL: v128_v8i16_2:204entry:205;CHECK: vld1.16206  %v1 = load  <8 x i16>,  ptr %in, align 2207;CHECK: vst1.16208  store <8 x i16> %v1, ptr %out, align 2209  ret void210}211 212 213;ALIGN = 2214;SIZE  = 128215;TYPE  = <4 x i32>216define void @v128_v4i32_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {217;CHECK-LABEL: v128_v4i32_2:218entry:219;CHECK: vld1.16220  %v1 = load  <4 x i32>,  ptr %in, align 2221;CHECK: vst1.16222  store <4 x i32> %v1, ptr %out, align 2223  ret void224}225 226 227;ALIGN = 2228;SIZE  = 128229;TYPE  = <2 x i64>230define void @v128_v2i64_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {231;CHECK-LABEL: v128_v2i64_2:232entry:233;CHECK: vld1.16234  %v1 = load  <2 x i64>,  ptr %in, align 2235;CHECK: vst1.16236  store <2 x i64> %v1, ptr %out, align 2237  ret void238}239 240 241;ALIGN = 2242;SIZE  = 128243;TYPE  = <4 x float>244define void @v128_v4f32_2(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {245;CHECK-LABEL: v128_v4f32_2:246entry:247;CHECK: vld1.16248  %v1 = load  <4 x float>,  ptr %in, align 2249;CHECK: vst1.16250  store <4 x float> %v1, ptr %out, align 2251  ret void252}253 254 255;ALIGN = 4256;SIZE  = 64257;TYPE  = <8 x i8>258define void @v64_v8i8_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {259;CHECK-LABEL: v64_v8i8_4:260entry:261;CHECK: vldr262  %v1 = load  <8 x i8>,  ptr %in, align 4263;CHECK: vstr264  store <8 x i8> %v1, ptr %out, align 4265  ret void266}267 268 269;ALIGN = 4270;SIZE  = 64271;TYPE  = <4 x i16>272define void @v64_v4i16_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {273;CHECK-LABEL: v64_v4i16_4:274entry:275;CHECK: vldr276  %v1 = load  <4 x i16>,  ptr %in, align 4277;CHECK: vstr278  store <4 x i16> %v1, ptr %out, align 4279  ret void280}281 282 283;ALIGN = 4284;SIZE  = 64285;TYPE  = <2 x i32>286define void @v64_v2i32_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {287;CHECK-LABEL: v64_v2i32_4:288entry:289;CHECK: vldr290  %v1 = load  <2 x i32>,  ptr %in, align 4291;CHECK: vstr292  store <2 x i32> %v1, ptr %out, align 4293  ret void294}295 296 297;ALIGN = 4298;SIZE  = 64299;TYPE  = <2 x float>300define void @v64_v2f32_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {301;CHECK-LABEL: v64_v2f32_4:302entry:303;CHECK: vldr304  %v1 = load  <2 x float>,  ptr %in, align 4305;CHECK: vstr306  store <2 x float> %v1, ptr %out, align 4307  ret void308}309 310 311;ALIGN = 4312;SIZE  = 128313;TYPE  = <16 x i8>314define void @v128_v16i8_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {315;CHECK-LABEL: v128_v16i8_4:316entry:317;CHECK: vld1.32318  %v1 = load  <16 x i8>,  ptr %in, align 4319;CHECK: vst1.32320  store <16 x i8> %v1, ptr %out, align 4321  ret void322}323 324 325;ALIGN = 4326;SIZE  = 128327;TYPE  = <8 x i16>328define void @v128_v8i16_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {329;CHECK-LABEL: v128_v8i16_4:330entry:331;CHECK: vld1.32332  %v1 = load  <8 x i16>,  ptr %in, align 4333;CHECK: vst1.32334  store <8 x i16> %v1, ptr %out, align 4335  ret void336}337 338 339;ALIGN = 4340;SIZE  = 128341;TYPE  = <4 x i32>342define void @v128_v4i32_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {343;CHECK-LABEL: v128_v4i32_4:344entry:345;CHECK: vld1.32346  %v1 = load  <4 x i32>,  ptr %in, align 4347;CHECK: vst1.32348  store <4 x i32> %v1, ptr %out, align 4349  ret void350}351 352 353;ALIGN = 4354;SIZE  = 128355;TYPE  = <2 x i64>356define void @v128_v2i64_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {357;CHECK-LABEL: v128_v2i64_4:358entry:359;CHECK: vld1.32360  %v1 = load  <2 x i64>,  ptr %in, align 4361;CHECK: vst1.32362  store <2 x i64> %v1, ptr %out, align 4363  ret void364}365 366 367;ALIGN = 4368;SIZE  = 128369;TYPE  = <4 x float>370define void @v128_v4f32_4(ptr noalias nocapture %out, ptr noalias nocapture %in) nounwind {371;CHECK-LABEL: v128_v4f32_4:372entry:373;CHECK: vld1.32374  %v1 = load  <4 x float>,  ptr %in, align 4375;CHECK: vst1.32376  store <4 x float> %v1, ptr %out, align 4377  ret void378}379 380define void @test_weird_type(<3 x double> %in, ptr %ptr) {381; CHECK-LABEL: test_weird_type:382; CHECK: vst1383 384  %vec.int = bitcast <3 x double> %in to <3 x i64>385  store <3 x i64> %vec.int, ptr %ptr, align 8386  ret void387}388