brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.7 KiB · 00affe1 Raw
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