brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.7 KiB · e42e618 Raw
183 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-grtev4-linux-gnu < %s | FileCheck %s3 4define ptr @test(ptr %0, ptr %args_gep) {5; CHECK-LABEL: define ptr @test(6; CHECK-SAME: ptr [[TMP0:%.*]], ptr [[ARGS_GEP:%.*]]) {7; CHECK-NEXT:  [[BB:.*:]]8; CHECK-NEXT:    [[ARG1:%.*]] = load ptr, ptr [[ARGS_GEP]], align 89; CHECK-NEXT:    [[ARG26:%.*]] = load ptr, ptr [[TMP0]], align 810; CHECK-NEXT:    [[TMP1:%.*]] = load <2 x i32>, ptr [[ARG1]], align 3211; CHECK-NEXT:    [[TMP2:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0>12; CHECK-NEXT:    [[TMP3:%.*]] = icmp eq <16 x i32> [[TMP2]], zeroinitializer13; CHECK-NEXT:    [[TMP4:%.*]] = zext <16 x i1> [[TMP3]] to <16 x i8>14; CHECK-NEXT:    store <16 x i8> [[TMP4]], ptr [[ARG26]], align 3215; CHECK-NEXT:    [[TMP5:%.*]] = getelementptr i8, ptr [[ARG26]], i64 1716; CHECK-NEXT:    [[TMP6:%.*]] = getelementptr i8, ptr [[ARG1]], i64 817; CHECK-NEXT:    [[TMP7:%.*]] = getelementptr i8, ptr [[ARG1]], i64 1218; CHECK-NEXT:    [[TMP9:%.*]] = load <2 x i32>, ptr [[TMP6]], align 8, !noalias [[META0:![0-9]+]]19; CHECK-NEXT:    [[TMP8:%.*]] = load i32, ptr [[TMP7]], align 4, !noalias [[META0]]20; CHECK-NEXT:    [[TMP10:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>21; CHECK-NEXT:    [[TMP11:%.*]] = shufflevector <2 x i32> [[TMP9]], <2 x i32> poison, <16 x i32> <i32 poison, i32 poison, i32 0, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>22; CHECK-NEXT:    [[TMP12:%.*]] = shufflevector <4 x i32> [[TMP10]], <4 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>23; CHECK-NEXT:    [[TMP13:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> [[TMP9]], <16 x i32> <i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 3, i32 3, i32 3>24; CHECK-NEXT:    [[TMP14:%.*]] = icmp eq <16 x i32> [[TMP13]], zeroinitializer25; CHECK-NEXT:    [[TMP15:%.*]] = zext <16 x i1> [[TMP14]] to <16 x i8>26; CHECK-NEXT:    store <16 x i8> [[TMP15]], ptr [[TMP5]], align 127; CHECK-NEXT:    [[TMP16:%.*]] = icmp eq i32 [[TMP8]], 028; CHECK-NEXT:    [[TMP17:%.*]] = zext i1 [[TMP16]] to i829; CHECK-NEXT:    store i8 [[TMP17]], ptr [[TMP0]], align 130; CHECK-NEXT:    ret ptr null31;32bb:33  %arg1 = load ptr, ptr %args_gep, align 834  %arg26 = load ptr, ptr %0, align 835  %1 = load i32, ptr %arg1, align 3236  %2 = icmp eq i32 %1, 037  %3 = zext i1 %2 to i838  store i8 %3, ptr %arg26, align 32, !alias.scope !039  %4 = icmp eq i32 %1, 040  %5 = zext i1 %4 to i841  %6 = getelementptr i8, ptr %arg26, i64 142  store i8 %5, ptr %6, align 1, !alias.scope !043  %7 = icmp eq i32 %1, 044  %8 = zext i1 %7 to i845  %9 = getelementptr i8, ptr %arg26, i64 246  store i8 %8, ptr %9, align 2, !alias.scope !047  %10 = icmp eq i32 %1, 048  %11 = zext i1 %10 to i849  %12 = getelementptr i8, ptr %arg26, i64 350  store i8 %11, ptr %12, align 1, !alias.scope !051  %13 = icmp eq i32 %1, 052  %14 = zext i1 %13 to i853  %15 = getelementptr i8, ptr %arg26, i64 454  store i8 %14, ptr %15, align 4, !alias.scope !055  %16 = icmp eq i32 %1, 056  %17 = zext i1 %16 to i857  %18 = getelementptr i8, ptr %arg26, i64 558  store i8 %17, ptr %18, align 1, !alias.scope !059  %19 = getelementptr i8, ptr %arg1, i64 460  %20 = load i32, ptr %19, align 4, !noalias !061  %21 = icmp eq i32 %20, 062  %22 = zext i1 %21 to i863  %23 = getelementptr i8, ptr %arg26, i64 664  store i8 %22, ptr %23, align 265  %24 = icmp eq i32 %20, 066  %25 = zext i1 %24 to i867  %26 = getelementptr i8, ptr %arg26, i64 768  store i8 %25, ptr %26, align 169  %27 = icmp eq i32 %20, 070  %28 = zext i1 %27 to i871  %29 = getelementptr i8, ptr %arg26, i64 872  store i8 %28, ptr %29, align 873  %30 = icmp eq i32 %20, 074  %31 = zext i1 %30 to i875  %32 = getelementptr i8, ptr %arg26, i64 976  store i8 %31, ptr %32, align 177  %33 = icmp eq i32 %20, 078  %34 = zext i1 %33 to i879  %35 = getelementptr i8, ptr %arg26, i64 1080  store i8 %34, ptr %35, align 281  %36 = icmp eq i32 %20, 082  %37 = zext i1 %36 to i883  %38 = getelementptr i8, ptr %arg26, i64 1184  store i8 %37, ptr %38, align 185  %39 = icmp eq i32 %1, 086  %40 = zext i1 %39 to i887  %41 = getelementptr i8, ptr %arg26, i64 1288  store i8 %40, ptr %41, align 489  %42 = icmp eq i32 %1, 090  %43 = zext i1 %42 to i891  %44 = getelementptr i8, ptr %arg26, i64 1392  store i8 %43, ptr %44, align 193  %45 = icmp eq i32 %1, 094  %46 = zext i1 %45 to i895  %47 = getelementptr i8, ptr %arg26, i64 1496  store i8 %46, ptr %47, align 297  %48 = icmp eq i32 %1, 098  %49 = zext i1 %48 to i899  %50 = getelementptr i8, ptr %arg26, i64 15100  store i8 %49, ptr %50, align 1101  %51 = icmp eq i32 %1, 0102  %52 = zext i1 %51 to i8103  %53 = getelementptr i8, ptr %arg26, i64 17104  store i8 %52, ptr %53, align 1, !alias.scope !0105  %54 = icmp eq i32 %20, 0106  %55 = zext i1 %54 to i8107  %56 = getelementptr i8, ptr %arg26, i64 18108  store i8 %55, ptr %56, align 2, !alias.scope !0109  %57 = icmp eq i32 %20, 0110  %58 = zext i1 %57 to i8111  %59 = getelementptr i8, ptr %arg26, i64 19112  store i8 %58, ptr %59, align 1, !alias.scope !0113  %60 = icmp eq i32 %20, 0114  %61 = zext i1 %60 to i8115  %62 = getelementptr i8, ptr %arg26, i64 20116  store i8 %61, ptr %62, align 4, !alias.scope !0117  %63 = icmp eq i32 %20, 0118  %64 = zext i1 %63 to i8119  %65 = getelementptr i8, ptr %arg26, i64 21120  store i8 %64, ptr %65, align 1, !alias.scope !0121  %66 = icmp eq i32 %20, 0122  %67 = zext i1 %66 to i8123  %68 = getelementptr i8, ptr %arg26, i64 22124  store i8 %67, ptr %68, align 2, !alias.scope !0125  %69 = icmp eq i32 %20, 0126  %70 = zext i1 %69 to i8127  %71 = getelementptr i8, ptr %arg26, i64 23128  store i8 %70, ptr %71, align 1, !alias.scope !0129  %72 = getelementptr i8, ptr %arg1, i64 8130  %73 = load i32, ptr %72, align 8, !noalias !0131  %74 = icmp eq i32 %73, 0132  %75 = zext i1 %74 to i8133  %76 = getelementptr i8, ptr %arg26, i64 24134  store i8 %75, ptr %76, align 8, !alias.scope !0135  %77 = icmp eq i32 %73, 0136  %78 = zext i1 %77 to i8137  %79 = getelementptr i8, ptr %arg26, i64 25138  store i8 %78, ptr %79, align 1, !alias.scope !0139  %80 = icmp eq i32 %73, 0140  %81 = zext i1 %80 to i8141  %82 = getelementptr i8, ptr %arg26, i64 26142  store i8 %81, ptr %82, align 2, !alias.scope !0143  %83 = icmp eq i32 %73, 0144  %84 = zext i1 %83 to i8145  %85 = getelementptr i8, ptr %arg26, i64 27146  store i8 %84, ptr %85, align 1, !alias.scope !0147  %86 = icmp eq i32 %73, 0148  %87 = zext i1 %86 to i8149  %88 = getelementptr i8, ptr %arg26, i64 28150  store i8 %87, ptr %88, align 4, !alias.scope !0151  %89 = icmp eq i32 %73, 0152  %90 = zext i1 %89 to i8153  %91 = getelementptr i8, ptr %arg26, i64 29154  store i8 %90, ptr %91, align 1, !alias.scope !0155  %92 = getelementptr i8, ptr %arg1, i64 12156  %93 = load i32, ptr %92, align 4, !noalias !0157  %94 = icmp eq i32 %93, 0158  %95 = zext i1 %94 to i8159  %96 = getelementptr i8, ptr %arg26, i64 30160  store i8 %95, ptr %96, align 2161  %97 = icmp eq i32 %93, 0162  %98 = zext i1 %97 to i8163  %99 = getelementptr i8, ptr %arg26, i64 31164  store i8 %98, ptr %99, align 1165  %100 = icmp eq i32 %93, 0166  %101 = zext i1 %100 to i8167  %102 = getelementptr i8, ptr %arg26, i64 32168  store i8 %101, ptr %102, align 32169  %103 = icmp eq i32 %93, 0170  %104 = zext i1 %103 to i8171  store i8 %104, ptr %0, align 1172  ret ptr null173}174 175!0 = !{!1}176!1 = !{!"result slice: {}", !2}177!2 = !{!"fn AA domain"}178;.179; CHECK: [[META0]] = !{[[META1:![0-9]+]]}180; CHECK: [[META1]] = !{!"result slice: {}", [[META2:![0-9]+]]}181; CHECK: [[META2]] = !{!"fn AA domain"}182;.183