375 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -mtriple=x86_64-unknown-unknown -S | FileCheck %s3 4declare <2 x i64> @llvm.x86.pclmulqdq(<2 x i64>, <2 x i64>, i8)5declare <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64>, <4 x i64>, i8)6declare <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64>, <8 x i64>, i8)7 8define <2 x i64> @test_demanded_elts_pclmulqdq_0(<2 x i64> %a0, <2 x i64> %a1) {9; CHECK-LABEL: @test_demanded_elts_pclmulqdq_0(10; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> [[A0:%.*]], <2 x i64> [[A1:%.*]], i8 0)11; CHECK-NEXT: ret <2 x i64> [[TMP1]]12;13 %1 = insertelement <2 x i64> %a0, i64 1, i64 114 %2 = insertelement <2 x i64> %a1, i64 1, i64 115 %3 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %1, <2 x i64> %2, i8 0)16 ret <2 x i64> %317}18 19define <2 x i64> @test_demanded_elts_pclmulqdq_1(<2 x i64> %a0, <2 x i64> %a1) {20; CHECK-LABEL: @test_demanded_elts_pclmulqdq_1(21; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 1>, <2 x i64> [[A1:%.*]], i8 1)22; CHECK-NEXT: ret <2 x i64> [[TMP1]]23;24 %1 = insertelement <2 x i64> %a0, i64 1, i64 125 %2 = insertelement <2 x i64> %a1, i64 1, i64 126 %3 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %1, <2 x i64> %2, i8 1)27 ret <2 x i64> %328}29 30define <2 x i64> @test_demanded_elts_pclmulqdq_16(<2 x i64> %a0, <2 x i64> %a1) {31; CHECK-LABEL: @test_demanded_elts_pclmulqdq_16(32; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> [[A0:%.*]], <2 x i64> <i64 poison, i64 1>, i8 16)33; CHECK-NEXT: ret <2 x i64> [[TMP1]]34;35 %1 = insertelement <2 x i64> %a0, i64 1, i64 136 %2 = insertelement <2 x i64> %a1, i64 1, i64 137 %3 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %1, <2 x i64> %2, i8 16)38 ret <2 x i64> %339}40 41define <2 x i64> @test_demanded_elts_pclmulqdq_17(<2 x i64> %a0, <2 x i64> %a1) {42; CHECK-LABEL: @test_demanded_elts_pclmulqdq_17(43; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 1>, <2 x i64> <i64 poison, i64 1>, i8 17)44; CHECK-NEXT: ret <2 x i64> [[TMP1]]45;46 %1 = insertelement <2 x i64> %a0, i64 1, i64 147 %2 = insertelement <2 x i64> %a1, i64 1, i64 148 %3 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> %1, <2 x i64> %2, i8 17)49 ret <2 x i64> %350}51 52define <2 x i64> @test_demanded_elts_pclmulqdq_undef_0() {53; CHECK-LABEL: @test_demanded_elts_pclmulqdq_undef_0(54; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 undef, i64 poison>, <2 x i64> <i64 undef, i64 poison>, i8 0)55; CHECK-NEXT: ret <2 x i64> [[TMP1]]56;57 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 undef, i64 1>, <2 x i64> <i64 undef, i64 1>, i8 0)58 ret <2 x i64> %159}60 61define <2 x i64> @test_demanded_elts_pclmulqdq_undef_1() {62; CHECK-LABEL: @test_demanded_elts_pclmulqdq_undef_1(63; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 undef>, <2 x i64> <i64 undef, i64 poison>, i8 1)64; CHECK-NEXT: ret <2 x i64> [[TMP1]]65;66 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 1, i64 undef>, <2 x i64> <i64 undef, i64 1>, i8 1)67 ret <2 x i64> %168}69 70define <2 x i64> @test_demanded_elts_pclmulqdq_undef_16() {71; CHECK-LABEL: @test_demanded_elts_pclmulqdq_undef_16(72; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 undef, i64 poison>, <2 x i64> <i64 poison, i64 undef>, i8 16)73; CHECK-NEXT: ret <2 x i64> [[TMP1]]74;75 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 undef, i64 1>, <2 x i64> <i64 1, i64 undef>, i8 16)76 ret <2 x i64> %177}78 79define <2 x i64> @test_demanded_elts_pclmulqdq_undef_17() {80; CHECK-LABEL: @test_demanded_elts_pclmulqdq_undef_17(81; CHECK-NEXT: [[TMP1:%.*]] = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 undef>, <2 x i64> <i64 poison, i64 undef>, i8 17)82; CHECK-NEXT: ret <2 x i64> [[TMP1]]83;84 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 1, i64 undef>, <2 x i64> <i64 1, i64 undef>, i8 17)85 ret <2 x i64> %186}87 88define <2 x i64> @test_demanded_elts_pclmulqdq_poison_0() {89; CHECK-LABEL: @test_demanded_elts_pclmulqdq_poison_0(90; CHECK-NEXT: ret <2 x i64> zeroinitializer91;92 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 1>, <2 x i64> <i64 poison, i64 1>, i8 0)93 ret <2 x i64> %194}95 96define <2 x i64> @test_demanded_elts_pclmulqdq_poison_1() {97; CHECK-LABEL: @test_demanded_elts_pclmulqdq_poison_1(98; CHECK-NEXT: ret <2 x i64> zeroinitializer99;100 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 1, i64 poison>, <2 x i64> <i64 poison, i64 1>, i8 1)101 ret <2 x i64> %1102}103 104define <2 x i64> @test_demanded_elts_pclmulqdq_poison_16() {105; CHECK-LABEL: @test_demanded_elts_pclmulqdq_poison_16(106; CHECK-NEXT: ret <2 x i64> zeroinitializer107;108 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 poison, i64 1>, <2 x i64> <i64 1, i64 poison>, i8 16)109 ret <2 x i64> %1110}111 112define <2 x i64> @test_demanded_elts_pclmulqdq_poison_17() {113; CHECK-LABEL: @test_demanded_elts_pclmulqdq_poison_17(114; CHECK-NEXT: ret <2 x i64> zeroinitializer115;116 %1 = call <2 x i64> @llvm.x86.pclmulqdq(<2 x i64> <i64 1, i64 poison>, <2 x i64> <i64 1, i64 poison>, i8 17)117 ret <2 x i64> %1118}119 120define <4 x i64> @test_demanded_elts_pclmulqdq_256_0(<4 x i64> %a0, <4 x i64> %a1) {121; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_0(122; CHECK-NEXT: [[RES:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> [[A0:%.*]], <4 x i64> [[A1:%.*]], i8 0)123; CHECK-NEXT: ret <4 x i64> [[RES]]124;125 %1 = insertelement <4 x i64> %a0, i64 1, i64 1126 %2 = insertelement <4 x i64> %a1, i64 1, i64 1127 %3 = insertelement <4 x i64> %1, i64 1, i64 3128 %4 = insertelement <4 x i64> %2, i64 1, i64 3129 %res = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> %3, <4 x i64> %4, i8 0)130 ret <4 x i64> %res131}132 133define <4 x i64> @test_demanded_elts_pclmulqdq_256_1(<4 x i64> %a0, <4 x i64> %a1) {134; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_1(135; CHECK-NEXT: [[RES:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, <4 x i64> [[A1:%.*]], i8 1)136; CHECK-NEXT: ret <4 x i64> [[RES]]137;138 %1 = insertelement <4 x i64> %a0, i64 1, i64 1139 %2 = insertelement <4 x i64> %a1, i64 1, i64 1140 %3 = insertelement <4 x i64> %1, i64 1, i64 3141 %4 = insertelement <4 x i64> %2, i64 1, i64 3142 %res = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> %3, <4 x i64> %4, i8 1)143 ret <4 x i64> %res144}145 146define <4 x i64> @test_demanded_elts_pclmulqdq_256_16(<4 x i64> %a0, <4 x i64> %a1) {147; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_16(148; CHECK-NEXT: [[RES:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> [[A0:%.*]], <4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, i8 16)149; CHECK-NEXT: ret <4 x i64> [[RES]]150;151 %1 = insertelement <4 x i64> %a0, i64 1, i64 1152 %2 = insertelement <4 x i64> %a1, i64 1, i64 1153 %3 = insertelement <4 x i64> %1, i64 1, i64 3154 %4 = insertelement <4 x i64> %2, i64 1, i64 3155 %res = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> %3, <4 x i64> %4, i8 16)156 ret <4 x i64> %res157}158 159define <4 x i64> @test_demanded_elts_pclmulqdq_256_17(<4 x i64> %a0, <4 x i64> %a1) {160; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_17(161; CHECK-NEXT: [[RES:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, <4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, i8 17)162; CHECK-NEXT: ret <4 x i64> [[RES]]163;164 %1 = insertelement <4 x i64> %a0, i64 1, i64 1165 %2 = insertelement <4 x i64> %a1, i64 1, i64 1166 %3 = insertelement <4 x i64> %1, i64 1, i64 3167 %4 = insertelement <4 x i64> %2, i64 1, i64 3168 %res = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> %3, <4 x i64> %4, i8 17)169 ret <4 x i64> %res170}171 172define <4 x i64> @test_demanded_elts_pclmulqdq_256_undef_0() {173; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_undef_0(174; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 undef, i64 poison, i64 undef, i64 poison>, <4 x i64> <i64 undef, i64 poison, i64 undef, i64 poison>, i8 0)175; CHECK-NEXT: ret <4 x i64> [[TMP1]]176;177 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 undef, i64 1, i64 undef, i64 1>, <4 x i64> <i64 undef, i64 1, i64 undef, i64 1>, i8 0)178 ret <4 x i64> %1179}180 181define <4 x i64> @test_demanded_elts_pclmulqdq_256_undef_1() {182; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_undef_1(183; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 undef, i64 poison, i64 undef>, <4 x i64> <i64 undef, i64 poison, i64 undef, i64 poison>, i8 1)184; CHECK-NEXT: ret <4 x i64> [[TMP1]]185;186 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 1, i64 undef, i64 1, i64 undef>, <4 x i64> <i64 undef, i64 1, i64 undef, i64 1>, i8 1)187 ret <4 x i64> %1188}189 190define <4 x i64> @test_demanded_elts_pclmulqdq_256_undef_16() {191; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_undef_16(192; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 undef, i64 poison, i64 undef, i64 poison>, <4 x i64> <i64 poison, i64 undef, i64 poison, i64 undef>, i8 16)193; CHECK-NEXT: ret <4 x i64> [[TMP1]]194;195 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 undef, i64 1, i64 undef, i64 1>, <4 x i64> <i64 1, i64 undef, i64 1, i64 undef>, i8 16)196 ret <4 x i64> %1197}198 199define <4 x i64> @test_demanded_elts_pclmulqdq_256_undef_17() {200; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_undef_17(201; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 undef, i64 poison, i64 undef>, <4 x i64> <i64 poison, i64 undef, i64 poison, i64 undef>, i8 17)202; CHECK-NEXT: ret <4 x i64> [[TMP1]]203;204 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 1, i64 undef, i64 1, i64 undef>, <4 x i64> <i64 1, i64 undef, i64 1, i64 undef>, i8 17)205 ret <4 x i64> %1206}207 208define <4 x i64> @test_demanded_elts_pclmulqdq_256_poison_0() {209; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_poison_0(210; CHECK-NEXT: ret <4 x i64> zeroinitializer211;212 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, <4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, i8 0)213 ret <4 x i64> %1214}215 216define <4 x i64> @test_demanded_elts_pclmulqdq_256_poison_1() {217; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_poison_1(218; CHECK-NEXT: ret <4 x i64> zeroinitializer219;220 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 1, i64 poison, i64 1, i64 poison>, <4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, i8 1)221 ret <4 x i64> %1222}223 224define <4 x i64> @test_demanded_elts_pclmulqdq_256_poison_16() {225; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_poison_16(226; CHECK-NEXT: ret <4 x i64> zeroinitializer227;228 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 poison, i64 1, i64 poison, i64 1>, <4 x i64> <i64 1, i64 poison, i64 1, i64 poison>, i8 16)229 ret <4 x i64> %1230}231 232define <4 x i64> @test_demanded_elts_pclmulqdq_256_poison_17() {233; CHECK-LABEL: @test_demanded_elts_pclmulqdq_256_poison_17(234; CHECK-NEXT: ret <4 x i64> zeroinitializer235;236 %1 = call <4 x i64> @llvm.x86.pclmulqdq.256(<4 x i64> <i64 1, i64 poison, i64 1, i64 poison>, <4 x i64> <i64 1, i64 poison, i64 1, i64 poison>, i8 17)237 ret <4 x i64> %1238}239 240define <8 x i64> @test_demanded_elts_pclmulqdq_512_0(<8 x i64> %a0, <8 x i64> %a1) {241; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_0(242; CHECK-NEXT: [[RES:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> [[A0:%.*]], <8 x i64> [[A1:%.*]], i8 0)243; CHECK-NEXT: ret <8 x i64> [[RES]]244;245 %1 = insertelement <8 x i64> %a0, i64 1, i64 1246 %2 = insertelement <8 x i64> %a1, i64 1, i64 1247 %3 = insertelement <8 x i64> %1, i64 1, i64 3248 %4 = insertelement <8 x i64> %2, i64 1, i64 3249 %5 = insertelement <8 x i64> %3, i64 1, i64 5250 %6 = insertelement <8 x i64> %4, i64 1, i64 5251 %7 = insertelement <8 x i64> %5, i64 1, i64 7252 %8 = insertelement <8 x i64> %6, i64 1, i64 7253 %res = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> %7, <8 x i64> %8, i8 0)254 ret <8 x i64> %res255}256 257define <8 x i64> @test_demanded_elts_pclmulqdq_512_1(<8 x i64> %a0, <8 x i64> %a1) {258; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_1(259; CHECK-NEXT: [[RES:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, <8 x i64> [[A1:%.*]], i8 1)260; CHECK-NEXT: ret <8 x i64> [[RES]]261;262 %1 = insertelement <8 x i64> %a0, i64 1, i64 1263 %2 = insertelement <8 x i64> %a1, i64 1, i64 1264 %3 = insertelement <8 x i64> %1, i64 1, i64 3265 %4 = insertelement <8 x i64> %2, i64 1, i64 3266 %5 = insertelement <8 x i64> %3, i64 1, i64 5267 %6 = insertelement <8 x i64> %4, i64 1, i64 5268 %7 = insertelement <8 x i64> %5, i64 1, i64 7269 %8 = insertelement <8 x i64> %6, i64 1, i64 7270 %res = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> %7, <8 x i64> %8, i8 1)271 ret <8 x i64> %res272}273 274define <8 x i64> @test_demanded_elts_pclmulqdq_512_16(<8 x i64> %a0, <8 x i64> %a1) {275; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_16(276; CHECK-NEXT: [[RES:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> [[A0:%.*]], <8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, i8 16)277; CHECK-NEXT: ret <8 x i64> [[RES]]278;279 %1 = insertelement <8 x i64> %a0, i64 1, i64 1280 %2 = insertelement <8 x i64> %a1, i64 1, i64 1281 %3 = insertelement <8 x i64> %1, i64 1, i64 3282 %4 = insertelement <8 x i64> %2, i64 1, i64 3283 %5 = insertelement <8 x i64> %3, i64 1, i64 5284 %6 = insertelement <8 x i64> %4, i64 1, i64 5285 %7 = insertelement <8 x i64> %5, i64 1, i64 7286 %8 = insertelement <8 x i64> %6, i64 1, i64 7287 %res = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> %7, <8 x i64> %8, i8 16)288 ret <8 x i64> %res289}290 291define <8 x i64> @test_demanded_elts_pclmulqdq_512_17(<8 x i64> %a0, <8 x i64> %a1) {292; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_17(293; CHECK-NEXT: [[RES:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, <8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, i8 17)294; CHECK-NEXT: ret <8 x i64> [[RES]]295;296 %1 = insertelement <8 x i64> %a0, i64 1, i64 1297 %2 = insertelement <8 x i64> %a1, i64 1, i64 1298 %3 = insertelement <8 x i64> %1, i64 1, i64 3299 %4 = insertelement <8 x i64> %2, i64 1, i64 3300 %5 = insertelement <8 x i64> %3, i64 1, i64 5301 %6 = insertelement <8 x i64> %4, i64 1, i64 5302 %7 = insertelement <8 x i64> %5, i64 1, i64 7303 %8 = insertelement <8 x i64> %6, i64 1, i64 7304 %res = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> %7, <8 x i64> %8, i8 17)305 ret <8 x i64> %res306}307 308define <8 x i64> @test_demanded_elts_pclmulqdq_512_undef_0() {309; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_undef_0(310; CHECK-NEXT: [[TMP1:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison>, <8 x i64> <i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison>, i8 0)311; CHECK-NEXT: ret <8 x i64> [[TMP1]]312;313 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1>, <8 x i64> <i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1>, i8 0)314 ret <8 x i64> %1315}316 317define <8 x i64> @test_demanded_elts_pclmulqdq_512_undef_1() {318; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_undef_1(319; CHECK-NEXT: [[TMP1:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef>, <8 x i64> <i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison>, i8 1)320; CHECK-NEXT: ret <8 x i64> [[TMP1]]321;322 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef>, <8 x i64> <i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1>, i8 1)323 ret <8 x i64> %1324}325 326define <8 x i64> @test_demanded_elts_pclmulqdq_512_undef_16() {327; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_undef_16(328; CHECK-NEXT: [[TMP1:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison>, <8 x i64> <i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef>, i8 16)329; CHECK-NEXT: ret <8 x i64> [[TMP1]]330;331 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1>, <8 x i64> <i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef>, i8 16)332 ret <8 x i64> %1333}334 335define <8 x i64> @test_demanded_elts_pclmulqdq_512_undef_17() {336; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_undef_17(337; CHECK-NEXT: [[TMP1:%.*]] = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef>, <8 x i64> <i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef, i64 poison, i64 undef>, i8 17)338; CHECK-NEXT: ret <8 x i64> [[TMP1]]339;340 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef>, <8 x i64> <i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef, i64 1, i64 undef>, i8 17)341 ret <8 x i64> %1342}343 344define <8 x i64> @test_demanded_elts_pclmulqdq_512_poison_0() {345; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_poison_0(346; CHECK-NEXT: ret <8 x i64> zeroinitializer347;348 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, <8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, i8 0)349 ret <8 x i64> %1350}351 352define <8 x i64> @test_demanded_elts_pclmulqdq_512_poison_1() {353; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_poison_1(354; CHECK-NEXT: ret <8 x i64> zeroinitializer355;356 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison>, <8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, i8 1)357 ret <8 x i64> %1358}359 360define <8 x i64> @test_demanded_elts_pclmulqdq_512_poison_16() {361; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_poison_16(362; CHECK-NEXT: ret <8 x i64> zeroinitializer363;364 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1>, <8 x i64> <i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison>, i8 16)365 ret <8 x i64> %1366}367 368define <8 x i64> @test_demanded_elts_pclmulqdq_512_poison_17() {369; CHECK-LABEL: @test_demanded_elts_pclmulqdq_512_poison_17(370; CHECK-NEXT: ret <8 x i64> zeroinitializer371;372 %1 = call <8 x i64> @llvm.x86.pclmulqdq.512(<8 x i64> <i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison>, <8 x i64> <i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison, i64 1, i64 poison>, i8 17)373 ret <8 x i64> %1374}375