396 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S -passes=instcombine < %s | FileCheck %s3target triple = "aarch64-unknown-linux-gnu"4 5define <vscale x 16 x i8> @test_ld1(ptr %a) #0 {6; CHECK-LABEL: define <vscale x 16 x i8> @test_ld1(7; CHECK-SAME: ptr [[A:%.*]]) {8; CHECK-NEXT: [[ENTRY:.*:]]9; CHECK-NEXT: ret <vscale x 16 x i8> zeroinitializer10;11entry:12 %res = call <vscale x 16 x i8> @llvm.aarch64.sve.ld1.nxv16i8(<vscale x 16 x i1> zeroinitializer, ptr %a)13 ret <vscale x 16 x i8> %res14}15 16define <vscale x 4 x i32> @test_ld1_gather(ptr %a, <vscale x 4 x i64> %b) #0 {17; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather(18; CHECK-SAME: ptr [[A:%.*]], <vscale x 4 x i64> [[B:%.*]]) {19; CHECK-NEXT: [[ENTRY:.*:]]20; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer21;22entry:23 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %a, <vscale x 4 x i64> %b)24 ret <vscale x 4 x i32> %025}26 27define <vscale x 2 x i64> @test_ld1_gather_index(ptr %a, <vscale x 2 x i64> %b) #0 {28; CHECK-LABEL: define <vscale x 2 x i64> @test_ld1_gather_index(29; CHECK-SAME: ptr [[A:%.*]], <vscale x 2 x i64> [[B:%.*]]) {30; CHECK-NEXT: [[ENTRY:.*:]]31; CHECK-NEXT: ret <vscale x 2 x i64> zeroinitializer32;33entry:34 %0 = tail call <vscale x 2 x i64> @llvm.aarch64.sve.ld1.gather.index.nxv2i64(<vscale x 2 x i1> zeroinitializer, ptr %a, <vscale x 2 x i64> %b)35 ret <vscale x 2 x i64> %036}37 38define <vscale x 4 x i32> @test_ld1_gather_scalar_offset(<vscale x 4 x i32> %a) #0 {39; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather_scalar_offset(40; CHECK-SAME: <vscale x 4 x i32> [[A:%.*]]) {41; CHECK-NEXT: [[ENTRY:.*:]]42; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer43;44entry:45 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.scalar.offset.nxv4i32.nxv4i32(<vscale x 4 x i1> zeroinitializer, <vscale x 4 x i32> %a, i64 0)46 ret <vscale x 4 x i32> %047}48 49define <vscale x 4 x i32> @test_ld1_gather_sxtw(ptr %b, <vscale x 4 x i32> %a) #0 {50; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather_sxtw(51; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {52; CHECK-NEXT: [[ENTRY:.*:]]53; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer54;55entry:56 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.sxtw.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)57 ret <vscale x 4 x i32> %058}59 60define <vscale x 4 x i32> @test_ld1_gather_sxtw_index(ptr %b, <vscale x 4 x i32> %a) #0 {61; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather_sxtw_index(62; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {63; CHECK-NEXT: [[ENTRY:.*:]]64; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer65;66entry:67 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.sxtw.index.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)68 ret <vscale x 4 x i32> %069}70 71define <vscale x 4 x i32> @test_ld1_gather_uxtw(ptr %b, <vscale x 4 x i32> %a) #0 {72; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather_uxtw(73; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {74; CHECK-NEXT: [[ENTRY:.*:]]75; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer76;77entry:78 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.uxtw.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)79 ret <vscale x 4 x i32> %080}81 82define <vscale x 4 x i32> @test_ld1_gather_uxtw_index(ptr %b, <vscale x 4 x i32> %a) #0 {83; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1_gather_uxtw_index(84; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {85; CHECK-NEXT: [[ENTRY:.*:]]86; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer87;88entry:89 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ld1.gather.uxtw.index.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)90 ret <vscale x 4 x i32> %091}92 93 94define <vscale x 2 x i64> @test_ld1q_gather_index(ptr %a, <vscale x 2 x i64> %b) #0 {95; CHECK-LABEL: define <vscale x 2 x i64> @test_ld1q_gather_index(96; CHECK-SAME: ptr [[A:%.*]], <vscale x 2 x i64> [[B:%.*]]) {97; CHECK-NEXT: [[ENTRY:.*:]]98; CHECK-NEXT: ret <vscale x 2 x i64> zeroinitializer99;100entry:101 %0 = tail call <vscale x 2 x i64> @llvm.aarch64.sve.ld1q.gather.index.nxv2i64(<vscale x 1 x i1> zeroinitializer, ptr %a, <vscale x 2 x i64> %b)102 ret <vscale x 2 x i64> %0103}104 105define <vscale x 8 x i16> @test_ld1q_gather_scalar_offset(<vscale x 2 x i64> %a) #0 {106; CHECK-LABEL: define <vscale x 8 x i16> @test_ld1q_gather_scalar_offset(107; CHECK-SAME: <vscale x 2 x i64> [[A:%.*]]) {108; CHECK-NEXT: [[ENTRY:.*:]]109; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer110;111entry:112 %0 = tail call <vscale x 8 x i16> @llvm.aarch64.sve.ld1q.gather.scalar.offset.nxv8i16.nxv2i64(<vscale x 1 x i1> zeroinitializer, <vscale x 2 x i64> %a, i64 0)113 ret <vscale x 8 x i16> %0114}115 116define <vscale x 16 x i8> @test_ld1q_gather_vector_offset(ptr %a, <vscale x 2 x i64> %b) #0 {117; CHECK-LABEL: define <vscale x 16 x i8> @test_ld1q_gather_vector_offset(118; CHECK-SAME: ptr [[A:%.*]], <vscale x 2 x i64> [[B:%.*]]) {119; CHECK-NEXT: [[ENTRY:.*:]]120; CHECK-NEXT: ret <vscale x 16 x i8> zeroinitializer121;122entry:123 %0 = tail call <vscale x 16 x i8> @llvm.aarch64.sve.ld1q.gather.vector.offset.nxv16i8(<vscale x 1 x i1> zeroinitializer, ptr %a, <vscale x 2 x i64> %b)124 ret <vscale x 16 x i8> %0125}126 127define <vscale x 16 x i8> @test_ld1ro(ptr %a) #0 {128; CHECK-LABEL: define <vscale x 16 x i8> @test_ld1ro(129; CHECK-SAME: ptr [[A:%.*]]) {130; CHECK-NEXT: [[ENTRY:.*:]]131; CHECK-NEXT: ret <vscale x 16 x i8> zeroinitializer132;133entry:134 %res = call <vscale x 16 x i8> @llvm.aarch64.sve.ld1ro.nxv16i8(<vscale x 16 x i1> zeroinitializer, ptr %a)135 ret <vscale x 16 x i8> %res136}137 138define <vscale x 16 x i8> @test_ld1rq(ptr %a) #0 {139; CHECK-LABEL: define <vscale x 16 x i8> @test_ld1rq(140; CHECK-SAME: ptr [[A:%.*]]) {141; CHECK-NEXT: [[ENTRY:.*:]]142; CHECK-NEXT: ret <vscale x 16 x i8> zeroinitializer143;144entry:145 %res = call <vscale x 16 x i8> @llvm.aarch64.sve.ld1rq.nxv16i8(<vscale x 16 x i1> zeroinitializer, ptr %a)146 ret <vscale x 16 x i8> %res147}148 149define <vscale x 2 x i64> @test_ld1udq(ptr %a) #0 {150; CHECK-LABEL: define <vscale x 2 x i64> @test_ld1udq(151; CHECK-SAME: ptr [[A:%.*]]) {152; CHECK-NEXT: [[ENTRY:.*:]]153; CHECK-NEXT: ret <vscale x 2 x i64> zeroinitializer154;155entry:156 %res = call <vscale x 2 x i64> @llvm.aarch64.sve.ld1udq.nxv2i64(<vscale x 1 x i1> zeroinitializer, ptr %a)157 ret <vscale x 2 x i64> %res158}159 160define <vscale x 4 x i32> @test_ld1uwq(ptr %a) #0 {161; CHECK-LABEL: define <vscale x 4 x i32> @test_ld1uwq(162; CHECK-SAME: ptr [[A:%.*]]) {163; CHECK-NEXT: [[ENTRY:.*:]]164; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer165;166entry:167 %res = call <vscale x 4 x i32> @llvm.aarch64.sve.ld1uwq.nxv4i32(<vscale x 1 x i1> zeroinitializer, ptr %a)168 ret <vscale x 4 x i32> %res169}170 171define <vscale x 8 x i16> @test_ld2_sret(ptr %a) #0 {172; CHECK-LABEL: define <vscale x 8 x i16> @test_ld2_sret(173; CHECK-SAME: ptr [[A:%.*]]) {174; CHECK-NEXT: [[ENTRY:.*:]]175; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer176;177entry:178 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld2.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)179 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0180 ret <vscale x 8 x i16> %1181}182 183define <vscale x 8 x i16> @test_ld2q_sret(ptr %a) #0 {184; CHECK-LABEL: define <vscale x 8 x i16> @test_ld2q_sret(185; CHECK-SAME: ptr [[A:%.*]]) {186; CHECK-NEXT: [[ENTRY:.*:]]187; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer188;189entry:190 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld2q.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)191 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0192 ret <vscale x 8 x i16> %1193}194 195define <vscale x 8 x i16> @test_ld3(ptr %a) #0 {196; CHECK-LABEL: define <vscale x 8 x i16> @test_ld3(197; CHECK-SAME: ptr [[A:%.*]]) {198; CHECK-NEXT: [[ENTRY:.*:]]199; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer200;201entry:202 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld3.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)203 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0204 ret <vscale x 8 x i16> %1205}206 207define <vscale x 8 x i16> @test_ld3q(ptr %a) #0 {208; CHECK-LABEL: define <vscale x 8 x i16> @test_ld3q(209; CHECK-SAME: ptr [[A:%.*]]) {210; CHECK-NEXT: [[ENTRY:.*:]]211; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer212;213entry:214 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld3q.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)215 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0216 ret <vscale x 8 x i16> %1217}218 219define <vscale x 8 x i16> @test_ld4(ptr %a) #0 {220; CHECK-LABEL: define <vscale x 8 x i16> @test_ld4(221; CHECK-SAME: ptr [[A:%.*]]) {222; CHECK-NEXT: [[ENTRY:.*:]]223; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer224;225entry:226 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld4.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)227 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0228 ret <vscale x 8 x i16> %1229}230 231define <vscale x 8 x i16> @test_ld4q(ptr %a) #0 {232; CHECK-LABEL: define <vscale x 8 x i16> @test_ld4q(233; CHECK-SAME: ptr [[A:%.*]]) {234; CHECK-NEXT: [[ENTRY:.*:]]235; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer236;237entry:238 %0 = tail call { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } @llvm.aarch64.sve.ld4q.sret.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)239 %1 = extractvalue { <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16> } %0, 0240 ret <vscale x 8 x i16> %1241}242 243define <vscale x 8 x i16> @test_ldff1(ptr %a) #0 {244; CHECK-LABEL: define <vscale x 8 x i16> @test_ldff1(245; CHECK-SAME: ptr [[A:%.*]]) {246; CHECK-NEXT: [[ENTRY:.*:]]247; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer248;249entry:250 %0 = tail call <vscale x 8 x i16> @llvm.aarch64.sve.ldff1.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)251 ret <vscale x 8 x i16> %0252}253 254define <vscale x 4 x i32> @test_ldff1_gather(ptr %a, <vscale x 4 x i64> %b) #0 {255; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather(256; CHECK-SAME: ptr [[A:%.*]], <vscale x 4 x i64> [[B:%.*]]) {257; CHECK-NEXT: [[ENTRY:.*:]]258; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer259;260entry:261 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %a, <vscale x 4 x i64> %b)262 ret <vscale x 4 x i32> %0263}264 265define <vscale x 2 x i64> @test_ldff1_gather_index(ptr %a, <vscale x 2 x i64> %b) #0 {266; CHECK-LABEL: define <vscale x 2 x i64> @test_ldff1_gather_index(267; CHECK-SAME: ptr [[A:%.*]], <vscale x 2 x i64> [[B:%.*]]) {268; CHECK-NEXT: [[ENTRY:.*:]]269; CHECK-NEXT: ret <vscale x 2 x i64> zeroinitializer270;271entry:272 %0 = tail call <vscale x 2 x i64> @llvm.aarch64.sve.ldff1.gather.index.nxv2i64(<vscale x 2 x i1> zeroinitializer, ptr %a, <vscale x 2 x i64> %b)273 ret <vscale x 2 x i64> %0274}275 276define <vscale x 4 x i32> @test_ldff1_gather_scalar_offset(<vscale x 4 x i32> %a) #0 {277; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather_scalar_offset(278; CHECK-SAME: <vscale x 4 x i32> [[A:%.*]]) {279; CHECK-NEXT: [[ENTRY:.*:]]280; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer281;282entry:283 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.scalar.offset.nxv4i32.nxv4i32(<vscale x 4 x i1> zeroinitializer, <vscale x 4 x i32> %a, i64 0)284 ret <vscale x 4 x i32> %0285}286 287define <vscale x 4 x i32> @test_ldff1_gather_sxtw(ptr %b, <vscale x 4 x i32> %a) #0 {288; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather_sxtw(289; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {290; CHECK-NEXT: [[ENTRY:.*:]]291; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer292;293entry:294 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.sxtw.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)295 ret <vscale x 4 x i32> %0296}297 298define <vscale x 4 x i32> @test_ldff1_gather_sxtw_index(ptr %b, <vscale x 4 x i32> %a) #0 {299; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather_sxtw_index(300; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {301; CHECK-NEXT: [[ENTRY:.*:]]302; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer303;304entry:305 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.sxtw.index.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)306 ret <vscale x 4 x i32> %0307}308 309define <vscale x 4 x i32> @test_ldff1_gather_uxtw(ptr %b, <vscale x 4 x i32> %a) #0 {310; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather_uxtw(311; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {312; CHECK-NEXT: [[ENTRY:.*:]]313; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer314;315entry:316 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.uxtw.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)317 ret <vscale x 4 x i32> %0318}319 320define <vscale x 4 x i32> @test_ldff1_gather_uxtw_index(ptr %b, <vscale x 4 x i32> %a) #0 {321; CHECK-LABEL: define <vscale x 4 x i32> @test_ldff1_gather_uxtw_index(322; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {323; CHECK-NEXT: [[ENTRY:.*:]]324; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer325;326entry:327 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldff1.gather.uxtw.index.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)328 ret <vscale x 4 x i32> %0329}330 331define <vscale x 16 x i8> @test_ldnf1(ptr %a) #0 {332; CHECK-LABEL: define <vscale x 16 x i8> @test_ldnf1(333; CHECK-SAME: ptr [[A:%.*]]) {334; CHECK-NEXT: [[ENTRY:.*:]]335; CHECK-NEXT: ret <vscale x 16 x i8> zeroinitializer336;337entry:338 %0 = tail call <vscale x 16 x i8> @llvm.aarch64.sve.ldnf1.nxv16i8(<vscale x 16 x i1> zeroinitializer, ptr %a)339 ret <vscale x 16 x i8> %0340}341 342define <vscale x 8 x i16> @test_ldnt1(ptr %a) #0 {343; CHECK-LABEL: define <vscale x 8 x i16> @test_ldnt1(344; CHECK-SAME: ptr [[A:%.*]]) {345; CHECK-NEXT: [[ENTRY:.*:]]346; CHECK-NEXT: ret <vscale x 8 x i16> zeroinitializer347;348entry:349 %0 = tail call <vscale x 8 x i16> @llvm.aarch64.sve.ldnt1.nxv8i16(<vscale x 8 x i1> zeroinitializer, ptr %a)350 ret <vscale x 8 x i16> %0351}352 353define <vscale x 4 x i32> @test_ldnt1_gather(ptr %a, <vscale x 4 x i64> %b) #0 {354; CHECK-LABEL: define <vscale x 4 x i32> @test_ldnt1_gather(355; CHECK-SAME: ptr [[A:%.*]], <vscale x 4 x i64> [[B:%.*]]) {356; CHECK-NEXT: [[ENTRY:.*:]]357; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer358;359entry:360 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldnt1.gather.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %a, <vscale x 4 x i64> %b)361 ret <vscale x 4 x i32> %0362}363 364define <vscale x 2 x i64> @test_ldnt1_gather_index(ptr %a, <vscale x 2 x i64> %b) #0 {365; CHECK-LABEL: define <vscale x 2 x i64> @test_ldnt1_gather_index(366; CHECK-SAME: ptr [[A:%.*]], <vscale x 2 x i64> [[B:%.*]]) {367; CHECK-NEXT: [[ENTRY:.*:]]368; CHECK-NEXT: ret <vscale x 2 x i64> zeroinitializer369;370entry:371 %0 = tail call <vscale x 2 x i64> @llvm.aarch64.sve.ldnt1.gather.index.nxv2i64(<vscale x 2 x i1> zeroinitializer, ptr %a, <vscale x 2 x i64> %b)372 ret <vscale x 2 x i64> %0373}374 375define <vscale x 4 x i32> @test_ldnt1_gather_scalar_offset(<vscale x 4 x i32> %a) #0 {376; CHECK-LABEL: define <vscale x 4 x i32> @test_ldnt1_gather_scalar_offset(377; CHECK-SAME: <vscale x 4 x i32> [[A:%.*]]) {378; CHECK-NEXT: [[ENTRY:.*:]]379; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer380;381entry:382 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldnt1.gather.scalar.offset.nxv4i32.nxv4i32(<vscale x 4 x i1> zeroinitializer, <vscale x 4 x i32> %a, i64 0)383 ret <vscale x 4 x i32> %0384}385 386define <vscale x 4 x i32> @test_ldnt1_gather_uxtw(ptr %b, <vscale x 4 x i32> %a) #0 {387; CHECK-LABEL: define <vscale x 4 x i32> @test_ldnt1_gather_uxtw(388; CHECK-SAME: ptr [[B:%.*]], <vscale x 4 x i32> [[A:%.*]]) {389; CHECK-NEXT: [[ENTRY:.*:]]390; CHECK-NEXT: ret <vscale x 4 x i32> zeroinitializer391;392entry:393 %0 = tail call <vscale x 4 x i32> @llvm.aarch64.sve.ldnt1.gather.uxtw.nxv4i32(<vscale x 4 x i1> zeroinitializer, ptr %b, <vscale x 4 x i32> %a)394 ret <vscale x 4 x i32> %0395}396