210 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-unknown-linux-gnu < %s | FileCheck %s3 4define i32 @test() {5; CHECK-LABEL: define i32 @test() {6; CHECK-NEXT: [[TMP23:%.*]] = call i8 @llvm.vector.reduce.xor.v64i8(<64 x i8> <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>)7; CHECK-NEXT: [[TMP24:%.*]] = sext i8 [[TMP23]] to i328; CHECK-NEXT: ret i32 [[TMP24]]9;10 %1 = or i32 0, 011 %2 = icmp eq i32 0, 012 %3 = zext i1 %2 to i813 %4 = icmp eq i32 0, 014 %5 = zext i1 %4 to i815 %6 = xor i8 %3, %516 %7 = icmp eq i32 0, 017 %8 = zext i1 %7 to i818 %9 = xor i8 %6, %819 %10 = icmp eq i32 0, 020 %11 = zext i1 %10 to i821 %12 = xor i8 %9, %1122 %13 = icmp eq i32 0, 023 %14 = zext i1 %13 to i824 %15 = xor i8 %12, %1425 %16 = icmp eq i32 0, 026 %17 = zext i1 %16 to i827 %18 = xor i8 %15, %1728 %19 = icmp eq i32 0, 029 %20 = zext i1 %19 to i830 %21 = xor i8 %18, %2031 %22 = or i32 %1, 032 %23 = icmp eq i32 %22, 033 %24 = zext i1 %23 to i834 %25 = xor i8 %21, %2435 %26 = icmp ne i32 %22, 036 %27 = zext i1 %26 to i837 %28 = xor i8 %25, %2738 %29 = icmp ne i32 %22, 039 %30 = zext i1 %29 to i840 %31 = xor i8 %28, %3041 %32 = icmp ne i32 %22, 042 %33 = zext i1 %32 to i843 %34 = xor i8 %31, %3344 %35 = icmp ne i32 %22, 045 %36 = zext i1 %35 to i846 %37 = xor i8 %34, %3647 %38 = icmp ne i32 %22, 048 %39 = zext i1 %38 to i849 %40 = xor i8 %37, %3950 %41 = icmp ne i32 %22, 051 %42 = zext i1 %41 to i852 %43 = xor i8 %40, %4253 %44 = icmp ne i32 %22, 054 %45 = zext i1 %44 to i855 %46 = xor i8 %43, %4556 %47 = icmp ne i32 %22, 057 %48 = zext i1 %47 to i858 %49 = xor i8 %46, %4859 %50 = icmp ne i32 %22, 060 %51 = zext i1 %50 to i861 %52 = xor i8 %49, %5162 %53 = or i32 %1, 063 %54 = icmp ne i32 %53, 064 %55 = zext i1 %54 to i865 %56 = xor i8 %52, %5566 %57 = icmp eq i32 %53, 067 %58 = zext i1 %57 to i868 %59 = xor i8 %56, %5869 %60 = icmp eq i32 %53, 070 %61 = zext i1 %60 to i871 %62 = xor i8 %59, %6172 %63 = icmp eq i32 %53, 073 %64 = zext i1 %63 to i874 %65 = xor i8 %62, %6475 %66 = icmp eq i32 %53, 076 %67 = zext i1 %66 to i877 %68 = xor i8 %65, %6778 %69 = icmp eq i32 %53, 079 %70 = zext i1 %69 to i880 %71 = xor i8 %68, %7081 %72 = icmp eq i32 %53, 082 %73 = zext i1 %72 to i883 %74 = xor i8 %71, %7384 %75 = icmp eq i32 %53, 085 %76 = zext i1 %75 to i886 %77 = xor i8 %74, %7687 %78 = icmp eq i32 %53, 088 %79 = zext i1 %78 to i889 %80 = xor i8 %77, %7990 %81 = or i32 %1, 091 %82 = icmp eq i32 %81, 092 %83 = zext i1 %82 to i893 %84 = xor i8 %80, %8394 %85 = icmp ne i32 %81, 095 %86 = zext i1 %85 to i896 %87 = xor i8 %84, %8697 %88 = icmp ne i32 %81, 098 %89 = zext i1 %88 to i899 %90 = xor i8 %87, %89100 %91 = icmp ne i32 %81, 0101 %92 = zext i1 %91 to i8102 %93 = xor i8 %90, %92103 %94 = icmp ne i32 %81, 0104 %95 = zext i1 %94 to i8105 %96 = xor i8 %93, %95106 %97 = icmp ne i32 %81, 0107 %98 = zext i1 %97 to i8108 %99 = xor i8 %96, %98109 %100 = icmp ne i32 %81, 0110 %101 = zext i1 %100 to i8111 %102 = xor i8 %99, %101112 %103 = icmp ne i32 %81, 0113 %104 = zext i1 %103 to i8114 %105 = xor i8 %102, %104115 %106 = icmp ne i32 %81, 0116 %107 = zext i1 %106 to i8117 %108 = xor i8 %105, %107118 %109 = icmp ne i32 %81, 0119 %110 = zext i1 %109 to i8120 %111 = xor i8 %108, %110121 %112 = or i32 %1, 0122 %113 = icmp ne i32 %112, 0123 %114 = zext i1 %113 to i8124 %115 = xor i8 %111, %114125 %116 = icmp eq i32 %112, 0126 %117 = zext i1 %116 to i8127 %118 = xor i8 %115, %117128 %119 = icmp eq i32 %112, 0129 %120 = zext i1 %119 to i8130 %121 = xor i8 %118, %120131 %122 = icmp eq i32 %112, 0132 %123 = zext i1 %122 to i8133 %124 = xor i8 %121, %123134 %125 = icmp eq i32 %112, 0135 %126 = zext i1 %125 to i8136 %127 = xor i8 %124, %126137 %128 = icmp eq i32 %112, 0138 %129 = zext i1 %128 to i8139 %130 = xor i8 %127, %129140 %131 = icmp eq i32 %112, 0141 %132 = zext i1 %131 to i8142 %133 = xor i8 %130, %132143 %134 = icmp eq i32 %112, 0144 %135 = zext i1 %134 to i8145 %136 = xor i8 %133, %135146 %137 = icmp eq i32 %112, 0147 %138 = zext i1 %137 to i8148 %139 = xor i8 %136, %138149 %140 = or i32 %1, 0150 %141 = icmp eq i32 %140, 0151 %142 = zext i1 %141 to i8152 %143 = xor i8 %139, %142153 %144 = icmp ne i32 %140, 0154 %145 = zext i1 %144 to i8155 %146 = xor i8 %143, %145156 %147 = icmp ne i32 %140, 0157 %148 = zext i1 %147 to i8158 %149 = xor i8 %146, %148159 %150 = icmp ne i32 %140, 0160 %151 = zext i1 %150 to i8161 %152 = xor i8 %149, %151162 %153 = icmp ne i32 %140, 0163 %154 = zext i1 %153 to i8164 %155 = xor i8 %152, %154165 %156 = icmp ne i32 %140, 0166 %157 = zext i1 %156 to i8167 %158 = xor i8 %155, %157168 %159 = icmp ne i32 %140, 0169 %160 = zext i1 %159 to i8170 %161 = xor i8 %158, %160171 %162 = icmp ne i32 %140, 0172 %163 = zext i1 %162 to i8173 %164 = xor i8 %161, %163174 %165 = icmp ne i32 0, 0175 %166 = zext i1 %165 to i8176 %167 = xor i8 %164, %166177 %168 = icmp ne i32 0, 0178 %169 = zext i1 %168 to i8179 %170 = xor i8 %167, %169180 %171 = icmp ne i32 0, 0181 %172 = zext i1 %171 to i8182 %173 = xor i8 %170, %172183 %174 = icmp eq i32 0, 0184 %175 = zext i1 %174 to i8185 %176 = xor i8 %173, %175186 %177 = icmp eq i32 0, 0187 %178 = zext i1 %177 to i8188 %179 = xor i8 %176, %178189 %180 = icmp eq i32 0, 0190 %181 = zext i1 %180 to i8191 %182 = xor i8 %179, %181192 %183 = icmp eq i32 0, 0193 %184 = zext i1 %183 to i8194 %185 = xor i8 %182, %184195 %186 = icmp eq i32 0, 0196 %187 = zext i1 %186 to i8197 %188 = xor i8 %185, %187198 %189 = icmp eq i32 0, 0199 %190 = zext i1 %189 to i8200 %191 = xor i8 %188, %190201 %192 = icmp eq i32 0, 0202 %193 = zext i1 %192 to i8203 %194 = xor i8 %191, %193204 %195 = icmp eq i32 0, 0205 %196 = zext i1 %195 to i8206 %197 = xor i8 %194, %196207 %198 = sext i8 %197 to i32208 ret i32 %198209}210