1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 2; RUN: llc -verify-machineinstrs -mtriple=powerpc64-- -mcpu=pwr7 < %s | FileCheck --check-prefix=PWR7-BE %s 3; RUN: llc -verify-machineinstrs -mtriple=powerpc64-- -mcpu=pwr8 < %s | FileCheck --check-prefix=PWR8-BE %s 4; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-- -mcpu=pwr7 < %s | FileCheck --check-prefix=PWR7-LE %s 5; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-- -mcpu=pwr8 < %s | FileCheck --check-prefix=PWR8-LE %s 6 7define <2 x i64> @build_v2i64_extload_0(ptr nocapture noundef readonly %p) { 8; PWR7-BE-LABEL: build_v2i64_extload_0: 9; PWR7-BE: # %bb.0: # %entry 10; PWR7-BE-NEXT: lwz 3, 0(3) 11; PWR7-BE-NEXT: li 4, 0 12; PWR7-BE-NEXT: std 4, -8(1) 13; PWR7-BE-NEXT: std 3, -16(1) 14; PWR7-BE-NEXT: addi 3, 1, -16 15; PWR7-BE-NEXT: lxvd2x 34, 0, 3 16; PWR7-BE-NEXT: blr 17; 18; PWR8-BE-LABEL: build_v2i64_extload_0: 19; PWR8-BE: # %bb.0: # %entry 20; PWR8-BE-NEXT: lwz 3, 0(3) 21; PWR8-BE-NEXT: li 4, 0 22; PWR8-BE-NEXT: mtfprd 0, 4 23; PWR8-BE-NEXT: mtfprd 1, 3 24; PWR8-BE-NEXT: xxmrghd 34, 1, 0 25; PWR8-BE-NEXT: blr 26; 27; PWR7-LE-LABEL: build_v2i64_extload_0: 28; PWR7-LE: # %bb.0: # %entry 29; PWR7-LE-NEXT: li 4, 0 30; PWR7-LE-NEXT: lwz 3, 0(3) 31; PWR7-LE-NEXT: stw 4, -16(1) 32; PWR7-LE-NEXT: addis 4, 2, .LCPI0_0@toc@ha 33; PWR7-LE-NEXT: addi 4, 4, .LCPI0_0@toc@l 34; PWR7-LE-NEXT: stw 3, -32(1) 35; PWR7-LE-NEXT: addi 3, 1, -32 36; PWR7-LE-NEXT: lxvd2x 0, 0, 4 37; PWR7-LE-NEXT: addi 4, 1, -16 38; PWR7-LE-NEXT: lxvd2x 1, 0, 4 39; PWR7-LE-NEXT: xxswapd 34, 0 40; PWR7-LE-NEXT: lxvd2x 0, 0, 3 41; PWR7-LE-NEXT: xxswapd 35, 1 42; PWR7-LE-NEXT: xxswapd 36, 0 43; PWR7-LE-NEXT: vperm 2, 3, 4, 2 44; PWR7-LE-NEXT: blr 45; 46; PWR8-LE-LABEL: build_v2i64_extload_0: 47; PWR8-LE: # %bb.0: # %entry 48; PWR8-LE-NEXT: lwz 3, 0(3) 49; PWR8-LE-NEXT: li 4, 0 50; PWR8-LE-NEXT: rldimi 3, 4, 32, 0 51; PWR8-LE-NEXT: rldimi 4, 4, 32, 0 52; PWR8-LE-NEXT: mtfprd 0, 3 53; PWR8-LE-NEXT: mtfprd 1, 4 54; PWR8-LE-NEXT: xxmrghd 34, 1, 0 55; PWR8-LE-NEXT: blr 56entry: 57 %0 = load i32, ptr %p, align 4 58 %conv = zext i32 %0 to i64 59 %vecinit1 = insertelement <2 x i64> <i64 0, i64 0>, i64 %conv, i64 0 60 ret <2 x i64> %vecinit1 61} 62 63define <2 x i64> @build_v2i64_extload_1(ptr nocapture noundef readonly %p) { 64; PWR7-BE-LABEL: build_v2i64_extload_1: 65; PWR7-BE: # %bb.0: # %entry 66; PWR7-BE-NEXT: lwz 3, 0(3) 67; PWR7-BE-NEXT: li 4, 0 68; PWR7-BE-NEXT: std 4, -16(1) 69; PWR7-BE-NEXT: std 3, -8(1) 70; PWR7-BE-NEXT: addi 3, 1, -16 71; PWR7-BE-NEXT: lxvd2x 34, 0, 3 72; PWR7-BE-NEXT: blr 73; 74; PWR8-BE-LABEL: build_v2i64_extload_1: 75; PWR8-BE: # %bb.0: # %entry 76; PWR8-BE-NEXT: lwz 3, 0(3) 77; PWR8-BE-NEXT: li 4, 0 78; PWR8-BE-NEXT: mtfprd 0, 4 79; PWR8-BE-NEXT: mtfprd 1, 3 80; PWR8-BE-NEXT: xxmrghd 34, 0, 1 81; PWR8-BE-NEXT: blr 82; 83; PWR7-LE-LABEL: build_v2i64_extload_1: 84; PWR7-LE: # %bb.0: # %entry 85; PWR7-LE-NEXT: lwz 3, 0(3) 86; PWR7-LE-NEXT: li 4, 0 87; PWR7-LE-NEXT: std 4, -16(1) 88; PWR7-LE-NEXT: std 3, -8(1) 89; PWR7-LE-NEXT: addi 3, 1, -16 90; PWR7-LE-NEXT: lxvd2x 0, 0, 3 91; PWR7-LE-NEXT: xxswapd 34, 0 92; PWR7-LE-NEXT: blr 93; 94; PWR8-LE-LABEL: build_v2i64_extload_1: 95; PWR8-LE: # %bb.0: # %entry 96; PWR8-LE-NEXT: lwz 3, 0(3) 97; PWR8-LE-NEXT: li 4, 0 98; PWR8-LE-NEXT: mtfprd 0, 4 99; PWR8-LE-NEXT: mtfprd 1, 3 100; PWR8-LE-NEXT: xxmrghd 34, 1, 0 101; PWR8-LE-NEXT: blr 102entry: 103 %0 = load i32, ptr %p, align 4 104 %conv = zext i32 %0 to i64 105 %vecinit1 = insertelement <2 x i64> <i64 0, i64 0>, i64 %conv, i64 1 106 ret <2 x i64> %vecinit1 107} 108 109define <2 x double> @build_v2f64_extload_0(ptr nocapture noundef readonly %p) { 110; PWR7-BE-LABEL: build_v2f64_extload_0: 111; PWR7-BE: # %bb.0: # %entry 112; PWR7-BE-NEXT: lfs 0, 0(3) 113; PWR7-BE-NEXT: xxlxor 1, 1, 1 114; PWR7-BE-NEXT: xxmrghd 34, 0, 1 115; PWR7-BE-NEXT: blr 116; 117; PWR8-BE-LABEL: build_v2f64_extload_0: 118; PWR8-BE: # %bb.0: # %entry 119; PWR8-BE-NEXT: lfs 0, 0(3) 120; PWR8-BE-NEXT: xxlxor 1, 1, 1 121; PWR8-BE-NEXT: xxmrghd 34, 0, 1 122; PWR8-BE-NEXT: blr 123; 124; PWR7-LE-LABEL: build_v2f64_extload_0: 125; PWR7-LE: # %bb.0: # %entry 126; PWR7-LE-NEXT: lfs 0, 0(3) 127; PWR7-LE-NEXT: xxlxor 1, 1, 1 128; PWR7-LE-NEXT: xxmrghd 34, 1, 0 129; PWR7-LE-NEXT: blr 130; 131; PWR8-LE-LABEL: build_v2f64_extload_0: 132; PWR8-LE: # %bb.0: # %entry 133; PWR8-LE-NEXT: lfs 0, 0(3) 134; PWR8-LE-NEXT: xxlxor 1, 1, 1 135; PWR8-LE-NEXT: xxmrghd 34, 1, 0 136; PWR8-LE-NEXT: blr 137entry: 138 %0 = load float, ptr %p, align 4 139 %conv = fpext float %0 to double 140 %vecinit1 = insertelement <2 x double> <double 0.000000e+00, double 0.000000e+00>, double %conv, i64 0 141 ret <2 x double> %vecinit1 142} 143 144define <2 x double> @build_v2f64_extload_1(ptr nocapture noundef readonly %p) { 145; PWR7-BE-LABEL: build_v2f64_extload_1: 146; PWR7-BE: # %bb.0: # %entry 147; PWR7-BE-NEXT: lfs 0, 0(3) 148; PWR7-BE-NEXT: xxlxor 1, 1, 1 149; PWR7-BE-NEXT: xxmrghd 34, 1, 0 150; PWR7-BE-NEXT: blr 151; 152; PWR8-BE-LABEL: build_v2f64_extload_1: 153; PWR8-BE: # %bb.0: # %entry 154; PWR8-BE-NEXT: lfs 0, 0(3) 155; PWR8-BE-NEXT: xxlxor 1, 1, 1 156; PWR8-BE-NEXT: xxmrghd 34, 1, 0 157; PWR8-BE-NEXT: blr 158; 159; PWR7-LE-LABEL: build_v2f64_extload_1: 160; PWR7-LE: # %bb.0: # %entry 161; PWR7-LE-NEXT: lfs 0, 0(3) 162; PWR7-LE-NEXT: xxlxor 1, 1, 1 163; PWR7-LE-NEXT: xxmrghd 34, 0, 1 164; PWR7-LE-NEXT: blr 165; 166; PWR8-LE-LABEL: build_v2f64_extload_1: 167; PWR8-LE: # %bb.0: # %entry 168; PWR8-LE-NEXT: lfs 0, 0(3) 169; PWR8-LE-NEXT: xxlxor 1, 1, 1 170; PWR8-LE-NEXT: xxmrghd 34, 0, 1 171; PWR8-LE-NEXT: blr 172entry: 173 %0 = load float, ptr %p, align 4 174 %conv = fpext float %0 to double 175 %vecinit1 = insertelement <2 x double> <double 0.000000e+00, double 0.000000e+00>, double %conv, i64 1 176 ret <2 x double> %vecinit1 177} 178 179define <2 x double> @build_v2f64_load_0(ptr nocapture noundef readonly %p) { 180; PWR7-BE-LABEL: build_v2f64_load_0: 181; PWR7-BE: # %bb.0: # %entry 182; PWR7-BE-NEXT: lfd 0, 0(3) 183; PWR7-BE-NEXT: xxlxor 1, 1, 1 184; PWR7-BE-NEXT: xxmrghd 34, 0, 1 185; PWR7-BE-NEXT: blr 186; 187; PWR8-BE-LABEL: build_v2f64_load_0: 188; PWR8-BE: # %bb.0: # %entry 189; PWR8-BE-NEXT: lfd 0, 0(3) 190; PWR8-BE-NEXT: xxlxor 1, 1, 1 191; PWR8-BE-NEXT: xxmrghd 34, 0, 1 192; PWR8-BE-NEXT: blr 193; 194; PWR7-LE-LABEL: build_v2f64_load_0: 195; PWR7-LE: # %bb.0: # %entry 196; PWR7-LE-NEXT: lfd 0, 0(3) 197; PWR7-LE-NEXT: xxlxor 1, 1, 1 198; PWR7-LE-NEXT: xxmrghd 34, 1, 0 199; PWR7-LE-NEXT: blr 200; 201; PWR8-LE-LABEL: build_v2f64_load_0: 202; PWR8-LE: # %bb.0: # %entry 203; PWR8-LE-NEXT: lfd 0, 0(3) 204; PWR8-LE-NEXT: xxlxor 1, 1, 1 205; PWR8-LE-NEXT: xxmrghd 34, 1, 0 206; PWR8-LE-NEXT: blr 207entry: 208 %0 = load double, ptr %p, align 8 209 %vecinit1 = insertelement <2 x double> <double 0.000000e+00, double 0.000000e+00>, double %0, i64 0 210 ret <2 x double> %vecinit1 211} 212 213define <2 x double> @build_v2f64_load_1(ptr nocapture noundef readonly %p) { 214; PWR7-BE-LABEL: build_v2f64_load_1: 215; PWR7-BE: # %bb.0: # %entry 216; PWR7-BE-NEXT: lfd 0, 0(3) 217; PWR7-BE-NEXT: xxlxor 1, 1, 1 218; PWR7-BE-NEXT: xxmrghd 34, 1, 0 219; PWR7-BE-NEXT: blr 220; 221; PWR8-BE-LABEL: build_v2f64_load_1: 222; PWR8-BE: # %bb.0: # %entry 223; PWR8-BE-NEXT: lfd 0, 0(3) 224; PWR8-BE-NEXT: xxlxor 1, 1, 1 225; PWR8-BE-NEXT: xxmrghd 34, 1, 0 226; PWR8-BE-NEXT: blr 227; 228; PWR7-LE-LABEL: build_v2f64_load_1: 229; PWR7-LE: # %bb.0: # %entry 230; PWR7-LE-NEXT: lfd 0, 0(3) 231; PWR7-LE-NEXT: xxlxor 1, 1, 1 232; PWR7-LE-NEXT: xxmrghd 34, 0, 1 233; PWR7-LE-NEXT: blr 234; 235; PWR8-LE-LABEL: build_v2f64_load_1: 236; PWR8-LE: # %bb.0: # %entry 237; PWR8-LE-NEXT: lfd 0, 0(3) 238; PWR8-LE-NEXT: xxlxor 1, 1, 1 239; PWR8-LE-NEXT: xxmrghd 34, 0, 1 240; PWR8-LE-NEXT: blr 241entry: 242 %0 = load double, ptr %p, align 8 243 %vecinit1 = insertelement <2 x double> <double 0.000000e+00, double 0.000000e+00>, double %0, i64 1 244 ret <2 x double> %vecinit1 245} 246 247define <2 x i64> @build_v2i64_load_0(ptr nocapture noundef readonly %p) { 248; PWR7-BE-LABEL: build_v2i64_load_0: 249; PWR7-BE: # %bb.0: # %entry 250; PWR7-BE-NEXT: ld 3, 0(3) 251; PWR7-BE-NEXT: li 4, 0 252; PWR7-BE-NEXT: std 4, -8(1) 253; PWR7-BE-NEXT: std 3, -16(1) 254; PWR7-BE-NEXT: addi 3, 1, -16 255; PWR7-BE-NEXT: lxvd2x 34, 0, 3 256; PWR7-BE-NEXT: blr 257; 258; PWR8-BE-LABEL: build_v2i64_load_0: 259; PWR8-BE: # %bb.0: # %entry 260; PWR8-BE-NEXT: ld 3, 0(3) 261; PWR8-BE-NEXT: li 4, 0 262; PWR8-BE-NEXT: mtfprd 0, 4 263; PWR8-BE-NEXT: mtfprd 1, 3 264; PWR8-BE-NEXT: xxmrghd 34, 1, 0 265; PWR8-BE-NEXT: blr 266; 267; PWR7-LE-LABEL: build_v2i64_load_0: 268; PWR7-LE: # %bb.0: # %entry 269; PWR7-LE-NEXT: ld 3, 0(3) 270; PWR7-LE-NEXT: li 4, 0 271; PWR7-LE-NEXT: std 4, -8(1) 272; PWR7-LE-NEXT: std 3, -16(1) 273; PWR7-LE-NEXT: addi 3, 1, -16 274; PWR7-LE-NEXT: lxvd2x 0, 0, 3 275; PWR7-LE-NEXT: xxswapd 34, 0 276; PWR7-LE-NEXT: blr 277; 278; PWR8-LE-LABEL: build_v2i64_load_0: 279; PWR8-LE: # %bb.0: # %entry 280; PWR8-LE-NEXT: ld 3, 0(3) 281; PWR8-LE-NEXT: li 4, 0 282; PWR8-LE-NEXT: mtfprd 0, 4 283; PWR8-LE-NEXT: mtfprd 1, 3 284; PWR8-LE-NEXT: xxmrghd 34, 0, 1 285; PWR8-LE-NEXT: blr 286entry: 287 %0 = load i64, ptr %p, align 8 288 %vecinit1 = insertelement <2 x i64> <i64 0, i64 0>, i64 %0, i64 0 289 ret <2 x i64> %vecinit1 290} 291 292define <2 x i64> @build_v2i64_load_1(ptr nocapture noundef readonly %p) { 293; PWR7-BE-LABEL: build_v2i64_load_1: 294; PWR7-BE: # %bb.0: # %entry 295; PWR7-BE-NEXT: ld 3, 0(3) 296; PWR7-BE-NEXT: li 4, 0 297; PWR7-BE-NEXT: std 4, -16(1) 298; PWR7-BE-NEXT: std 3, -8(1) 299; PWR7-BE-NEXT: addi 3, 1, -16 300; PWR7-BE-NEXT: lxvd2x 34, 0, 3 301; PWR7-BE-NEXT: blr 302; 303; PWR8-BE-LABEL: build_v2i64_load_1: 304; PWR8-BE: # %bb.0: # %entry 305; PWR8-BE-NEXT: ld 3, 0(3) 306; PWR8-BE-NEXT: li 4, 0 307; PWR8-BE-NEXT: mtfprd 0, 4 308; PWR8-BE-NEXT: mtfprd 1, 3 309; PWR8-BE-NEXT: xxmrghd 34, 0, 1 310; PWR8-BE-NEXT: blr 311; 312; PWR7-LE-LABEL: build_v2i64_load_1: 313; PWR7-LE: # %bb.0: # %entry 314; PWR7-LE-NEXT: ld 3, 0(3) 315; PWR7-LE-NEXT: li 4, 0 316; PWR7-LE-NEXT: std 4, -16(1) 317; PWR7-LE-NEXT: std 3, -8(1) 318; PWR7-LE-NEXT: addi 3, 1, -16 319; PWR7-LE-NEXT: lxvd2x 0, 0, 3 320; PWR7-LE-NEXT: xxswapd 34, 0 321; PWR7-LE-NEXT: blr 322; 323; PWR8-LE-LABEL: build_v2i64_load_1: 324; PWR8-LE: # %bb.0: # %entry 325; PWR8-LE-NEXT: ld 3, 0(3) 326; PWR8-LE-NEXT: li 4, 0 327; PWR8-LE-NEXT: mtfprd 0, 4 328; PWR8-LE-NEXT: mtfprd 1, 3 329; PWR8-LE-NEXT: xxmrghd 34, 1, 0 330; PWR8-LE-NEXT: blr 331entry: 332 %0 = load i64, ptr %p, align 8 333 %vecinit1 = insertelement <2 x i64> <i64 0, i64 0>, i64 %0, i64 1 334 ret <2 x i64> %vecinit1 335} 336 337define <4 x i32> @build_v4i32_load_0(ptr nocapture noundef readonly %p) { 338; PWR7-BE-LABEL: build_v4i32_load_0: 339; PWR7-BE: # %bb.0: # %entry 340; PWR7-BE-NEXT: lwz 3, 0(3) 341; PWR7-BE-NEXT: xxlxor 36, 36, 36 342; PWR7-BE-NEXT: sldi 3, 3, 32 343; PWR7-BE-NEXT: std 3, -32(1) 344; PWR7-BE-NEXT: std 3, -24(1) 345; PWR7-BE-NEXT: addis 3, 2, .LCPI8_0@toc@ha 346; PWR7-BE-NEXT: addi 3, 3, .LCPI8_0@toc@l 347; PWR7-BE-NEXT: lxvw4x 34, 0, 3 348; PWR7-BE-NEXT: addi 3, 1, -32 349; PWR7-BE-NEXT: lxvw4x 35, 0, 3 350; PWR7-BE-NEXT: vperm 2, 3, 4, 2 351; PWR7-BE-NEXT: blr 352; 353; PWR8-BE-LABEL: build_v4i32_load_0: 354; PWR8-BE: # %bb.0: # %entry 355; PWR8-BE-NEXT: lwz 3, 0(3) 356; PWR8-BE-NEXT: li 4, 0 357; PWR8-BE-NEXT: li 5, 0 358; PWR8-BE-NEXT: rldimi 4, 4, 32, 0 359; PWR8-BE-NEXT: rldimi 5, 3, 32, 0 360; PWR8-BE-NEXT: mtfprd 1, 4 361; PWR8-BE-NEXT: mtfprd 0, 5 362; PWR8-BE-NEXT: xxmrghd 34, 0, 1 363; PWR8-BE-NEXT: blr 364; 365; PWR7-LE-LABEL: build_v4i32_load_0: 366; PWR7-LE: # %bb.0: # %entry 367; PWR7-LE-NEXT: li 4, 0 368; PWR7-LE-NEXT: lwz 3, 0(3) 369; PWR7-LE-NEXT: stw 4, -16(1) 370; PWR7-LE-NEXT: addis 4, 2, .LCPI8_0@toc@ha 371; PWR7-LE-NEXT: addi 4, 4, .LCPI8_0@toc@l 372; PWR7-LE-NEXT: stw 3, -32(1) 373; PWR7-LE-NEXT: addi 3, 1, -32 374; PWR7-LE-NEXT: lxvd2x 0, 0, 4 375; PWR7-LE-NEXT: addi 4, 1, -16 376; PWR7-LE-NEXT: lxvd2x 1, 0, 4 377; PWR7-LE-NEXT: xxswapd 34, 0 378; PWR7-LE-NEXT: lxvd2x 0, 0, 3 379; PWR7-LE-NEXT: xxswapd 35, 1 380; PWR7-LE-NEXT: xxswapd 36, 0 381; PWR7-LE-NEXT: vperm 2, 3, 4, 2 382; PWR7-LE-NEXT: blr 383; 384; PWR8-LE-LABEL: build_v4i32_load_0: 385; PWR8-LE: # %bb.0: # %entry 386; PWR8-LE-NEXT: lwz 3, 0(3) 387; PWR8-LE-NEXT: li 4, 0 388; PWR8-LE-NEXT: rldimi 3, 4, 32, 0 389; PWR8-LE-NEXT: rldimi 4, 4, 32, 0 390; PWR8-LE-NEXT: mtfprd 0, 3 391; PWR8-LE-NEXT: mtfprd 1, 4 392; PWR8-LE-NEXT: xxmrghd 34, 1, 0 393; PWR8-LE-NEXT: blr 394entry: 395 %0 = load i32, ptr %p, align 4 396 %vecinit1 = insertelement <4 x i32> <i32 0, i32 0, i32 0, i32 0>, i32 %0, i32 0 397 ret <4 x i32> %vecinit1 398} 399 400define <4 x i32> @build_v4i32_load_1(ptr nocapture noundef readonly %p) { 401; PWR7-BE-LABEL: build_v4i32_load_1: 402; PWR7-BE: # %bb.0: # %entry 403; PWR7-BE-NEXT: lwz 3, 0(3) 404; PWR7-BE-NEXT: xxlxor 36, 36, 36 405; PWR7-BE-NEXT: sldi 3, 3, 32 406; PWR7-BE-NEXT: std 3, -16(1) 407; PWR7-BE-NEXT: std 3, -8(1) 408; PWR7-BE-NEXT: addis 3, 2, .LCPI9_0@toc@ha 409; PWR7-BE-NEXT: addi 3, 3, .LCPI9_0@toc@l 410; PWR7-BE-NEXT: lxvw4x 34, 0, 3 411; PWR7-BE-NEXT: addi 3, 1, -16 412; PWR7-BE-NEXT: lxvw4x 35, 0, 3 413; PWR7-BE-NEXT: vperm 2, 4, 3, 2 414; PWR7-BE-NEXT: blr 415; 416; PWR8-BE-LABEL: build_v4i32_load_1: 417; PWR8-BE: # %bb.0: # %entry 418; PWR8-BE-NEXT: lwz 3, 0(3) 419; PWR8-BE-NEXT: li 4, 0 420; PWR8-BE-NEXT: rldimi 3, 4, 32, 0 421; PWR8-BE-NEXT: rldimi 4, 4, 32, 0 422; PWR8-BE-NEXT: mtfprd 0, 3 423; PWR8-BE-NEXT: mtfprd 1, 4 424; PWR8-BE-NEXT: xxmrghd 34, 0, 1 425; PWR8-BE-NEXT: blr 426; 427; PWR7-LE-LABEL: build_v4i32_load_1: 428; PWR7-LE: # %bb.0: # %entry 429; PWR7-LE-NEXT: li 4, 0 430; PWR7-LE-NEXT: lwz 3, 0(3) 431; PWR7-LE-NEXT: stw 4, -32(1) 432; PWR7-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha 433; PWR7-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l 434; PWR7-LE-NEXT: stw 3, -16(1) 435; PWR7-LE-NEXT: addi 3, 1, -16 436; PWR7-LE-NEXT: lxvd2x 0, 0, 4 437; PWR7-LE-NEXT: addi 4, 1, -32 438; PWR7-LE-NEXT: lxvd2x 1, 0, 4 439; PWR7-LE-NEXT: xxswapd 34, 0 440; PWR7-LE-NEXT: lxvd2x 0, 0, 3 441; PWR7-LE-NEXT: xxswapd 35, 1 442; PWR7-LE-NEXT: xxswapd 36, 0 443; PWR7-LE-NEXT: vperm 2, 4, 3, 2 444; PWR7-LE-NEXT: blr 445; 446; PWR8-LE-LABEL: build_v4i32_load_1: 447; PWR8-LE: # %bb.0: # %entry 448; PWR8-LE-NEXT: lwz 3, 0(3) 449; PWR8-LE-NEXT: li 4, 0 450; PWR8-LE-NEXT: li 5, 0 451; PWR8-LE-NEXT: rldimi 4, 4, 32, 0 452; PWR8-LE-NEXT: rldimi 5, 3, 32, 0 453; PWR8-LE-NEXT: mtfprd 1, 4 454; PWR8-LE-NEXT: mtfprd 0, 5 455; PWR8-LE-NEXT: xxmrghd 34, 1, 0 456; PWR8-LE-NEXT: blr 457entry: 458 %0 = load i32, ptr %p, align 4 459 %vecinit1 = insertelement <4 x i32> <i32 0, i32 0, i32 0, i32 0>, i32 %0, i32 1 460 ret <4 x i32> %vecinit1 461} 462 463define <4 x i32> @build_v4i32_load_2(ptr nocapture noundef readonly %p) { 464; PWR7-BE-LABEL: build_v4i32_load_2: 465; PWR7-BE: # %bb.0: # %entry 466; PWR7-BE-NEXT: lwz 3, 0(3) 467; PWR7-BE-NEXT: xxlxor 36, 36, 36 468; PWR7-BE-NEXT: sldi 3, 3, 32 469; PWR7-BE-NEXT: std 3, -16(1) 470; PWR7-BE-NEXT: std 3, -8(1) 471; PWR7-BE-NEXT: addis 3, 2, .LCPI10_0@toc@ha 472; PWR7-BE-NEXT: addi 3, 3, .LCPI10_0@toc@l 473; PWR7-BE-NEXT: lxvw4x 34, 0, 3 474; PWR7-BE-NEXT: addi 3, 1, -16 475; PWR7-BE-NEXT: lxvw4x 35, 0, 3 476; PWR7-BE-NEXT: vperm 2, 4, 3, 2 477; PWR7-BE-NEXT: blr 478; 479; PWR8-BE-LABEL: build_v4i32_load_2: 480; PWR8-BE: # %bb.0: # %entry 481; PWR8-BE-NEXT: lwz 3, 0(3) 482; PWR8-BE-NEXT: li 4, 0 483; PWR8-BE-NEXT: li 5, 0 484; PWR8-BE-NEXT: rldimi 4, 4, 32, 0 485; PWR8-BE-NEXT: rldimi 5, 3, 32, 0 486; PWR8-BE-NEXT: mtfprd 1, 4 487; PWR8-BE-NEXT: mtfprd 0, 5 488; PWR8-BE-NEXT: xxmrghd 34, 1, 0 489; PWR8-BE-NEXT: blr 490; 491; PWR7-LE-LABEL: build_v4i32_load_2: 492; PWR7-LE: # %bb.0: # %entry 493; PWR7-LE-NEXT: li 4, 0 494; PWR7-LE-NEXT: lwz 3, 0(3) 495; PWR7-LE-NEXT: stw 4, -32(1) 496; PWR7-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha 497; PWR7-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l 498; PWR7-LE-NEXT: stw 3, -16(1) 499; PWR7-LE-NEXT: addi 3, 1, -16 500; PWR7-LE-NEXT: lxvd2x 0, 0, 4 501; PWR7-LE-NEXT: addi 4, 1, -32 502; PWR7-LE-NEXT: lxvd2x 1, 0, 4 503; PWR7-LE-NEXT: xxswapd 34, 0 504; PWR7-LE-NEXT: lxvd2x 0, 0, 3 505; PWR7-LE-NEXT: xxswapd 35, 1 506; PWR7-LE-NEXT: xxswapd 36, 0 507; PWR7-LE-NEXT: vperm 2, 4, 3, 2 508; PWR7-LE-NEXT: blr 509; 510; PWR8-LE-LABEL: build_v4i32_load_2: 511; PWR8-LE: # %bb.0: # %entry 512; PWR8-LE-NEXT: lwz 3, 0(3) 513; PWR8-LE-NEXT: li 4, 0 514; PWR8-LE-NEXT: rldimi 3, 4, 32, 0 515; PWR8-LE-NEXT: rldimi 4, 4, 32, 0 516; PWR8-LE-NEXT: mtfprd 0, 3 517; PWR8-LE-NEXT: mtfprd 1, 4 518; PWR8-LE-NEXT: xxmrghd 34, 0, 1 519; PWR8-LE-NEXT: blr 520entry: 521 %0 = load i32, ptr %p, align 4 522 %vecinit1 = insertelement <4 x i32> <i32 0, i32 0, i32 0, i32 0>, i32 %0, i32 2 523 ret <4 x i32> %vecinit1 524} 525 526define <4 x i32> @build_v4i32_load_3(ptr nocapture noundef readonly %p) { 527; PWR7-BE-LABEL: build_v4i32_load_3: 528; PWR7-BE: # %bb.0: # %entry 529; PWR7-BE-NEXT: lwz 3, 0(3) 530; PWR7-BE-NEXT: xxlxor 36, 36, 36 531; PWR7-BE-NEXT: sldi 3, 3, 32 532; PWR7-BE-NEXT: std 3, -16(1) 533; PWR7-BE-NEXT: std 3, -8(1) 534; PWR7-BE-NEXT: addis 3, 2, .LCPI11_0@toc@ha 535; PWR7-BE-NEXT: addi 3, 3, .LCPI11_0@toc@l 536; PWR7-BE-NEXT: lxvw4x 34, 0, 3 537; PWR7-BE-NEXT: addi 3, 1, -16 538; PWR7-BE-NEXT: lxvw4x 35, 0, 3 539; PWR7-BE-NEXT: vperm 2, 4, 3, 2 540; PWR7-BE-NEXT: blr 541; 542; PWR8-BE-LABEL: build_v4i32_load_3: 543; PWR8-BE: # %bb.0: # %entry 544; PWR8-BE-NEXT: lwz 3, 0(3) 545; PWR8-BE-NEXT: li 4, 0 546; PWR8-BE-NEXT: rldimi 3, 4, 32, 0 547; PWR8-BE-NEXT: rldimi 4, 4, 32, 0 548; PWR8-BE-NEXT: mtfprd 0, 3 549; PWR8-BE-NEXT: mtfprd 1, 4 550; PWR8-BE-NEXT: xxmrghd 34, 1, 0 551; PWR8-BE-NEXT: blr 552; 553; PWR7-LE-LABEL: build_v4i32_load_3: 554; PWR7-LE: # %bb.0: # %entry 555; PWR7-LE-NEXT: li 4, 0 556; PWR7-LE-NEXT: lwz 3, 0(3) 557; PWR7-LE-NEXT: stw 4, -32(1) 558; PWR7-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha 559; PWR7-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l 560; PWR7-LE-NEXT: stw 3, -16(1) 561; PWR7-LE-NEXT: addi 3, 1, -16 562; PWR7-LE-NEXT: lxvd2x 0, 0, 4 563; PWR7-LE-NEXT: addi 4, 1, -32 564; PWR7-LE-NEXT: lxvd2x 1, 0, 4 565; PWR7-LE-NEXT: xxswapd 34, 0 566; PWR7-LE-NEXT: lxvd2x 0, 0, 3 567; PWR7-LE-NEXT: xxswapd 35, 1 568; PWR7-LE-NEXT: xxswapd 36, 0 569; PWR7-LE-NEXT: vperm 2, 4, 3, 2 570; PWR7-LE-NEXT: blr 571; 572; PWR8-LE-LABEL: build_v4i32_load_3: 573; PWR8-LE: # %bb.0: # %entry 574; PWR8-LE-NEXT: lwz 3, 0(3) 575; PWR8-LE-NEXT: li 4, 0 576; PWR8-LE-NEXT: li 5, 0 577; PWR8-LE-NEXT: rldimi 4, 4, 32, 0 578; PWR8-LE-NEXT: rldimi 5, 3, 32, 0 579; PWR8-LE-NEXT: mtfprd 1, 4 580; PWR8-LE-NEXT: mtfprd 0, 5 581; PWR8-LE-NEXT: xxmrghd 34, 0, 1 582; PWR8-LE-NEXT: blr 583entry: 584 %0 = load i32, ptr %p, align 4 585 %vecinit1 = insertelement <4 x i32> <i32 0, i32 0, i32 0, i32 0>, i32 %0, i32 3 586 ret <4 x i32> %vecinit1 587} 588 589define <4 x float> @build_v4f32_load_0(ptr nocapture noundef readonly %p) { 590; PWR7-BE-LABEL: build_v4f32_load_0: 591; PWR7-BE: # %bb.0: # %entry 592; PWR7-BE-NEXT: lwz 3, 0(3) 593; PWR7-BE-NEXT: li 4, 0 594; PWR7-BE-NEXT: stw 4, -16(1) 595; PWR7-BE-NEXT: stw 3, -32(1) 596; PWR7-BE-NEXT: addis 3, 2, .LCPI12_0@toc@ha 597; PWR7-BE-NEXT: addi 3, 3, .LCPI12_0@toc@l 598; PWR7-BE-NEXT: lxvw4x 34, 0, 3 599; PWR7-BE-NEXT: addi 3, 1, -16 600; PWR7-BE-NEXT: lxvw4x 35, 0, 3 601; PWR7-BE-NEXT: addi 3, 1, -32 602; PWR7-BE-NEXT: lxvw4x 36, 0, 3 603; PWR7-BE-NEXT: vperm 2, 4, 3, 2 604; PWR7-BE-NEXT: blr 605; 606; PWR8-BE-LABEL: build_v4f32_load_0: 607; PWR8-BE: # %bb.0: # %entry 608; PWR8-BE-NEXT: lfs 0, 0(3) 609; PWR8-BE-NEXT: xxlxor 1, 1, 1 610; PWR8-BE-NEXT: xxmrghd 0, 0, 1 611; PWR8-BE-NEXT: xxspltd 1, 1, 0 612; PWR8-BE-NEXT: xvcvdpsp 34, 0 613; PWR8-BE-NEXT: xvcvdpsp 35, 1 614; PWR8-BE-NEXT: vmrgew 2, 2, 3 615; PWR8-BE-NEXT: blr 616; 617; PWR7-LE-LABEL: build_v4f32_load_0: 618; PWR7-LE: # %bb.0: # %entry 619; PWR7-LE-NEXT: li 4, 0 620; PWR7-LE-NEXT: lwz 3, 0(3) 621; PWR7-LE-NEXT: stw 4, -16(1) 622; PWR7-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha 623; PWR7-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l 624; PWR7-LE-NEXT: stw 3, -32(1) 625; PWR7-LE-NEXT: addi 3, 1, -32 626; PWR7-LE-NEXT: lxvd2x 0, 0, 4 627; PWR7-LE-NEXT: addi 4, 1, -16 628; PWR7-LE-NEXT: lxvd2x 1, 0, 4 629; PWR7-LE-NEXT: xxswapd 34, 0 630; PWR7-LE-NEXT: lxvd2x 0, 0, 3 631; PWR7-LE-NEXT: xxswapd 35, 1 632; PWR7-LE-NEXT: xxswapd 36, 0 633; PWR7-LE-NEXT: vperm 2, 3, 4, 2 634; PWR7-LE-NEXT: blr 635; 636; PWR8-LE-LABEL: build_v4f32_load_0: 637; PWR8-LE: # %bb.0: # %entry 638; PWR8-LE-NEXT: lfs 0, 0(3) 639; PWR8-LE-NEXT: xxlxor 1, 1, 1 640; PWR8-LE-NEXT: xxmrghd 0, 1, 0 641; PWR8-LE-NEXT: xxspltd 1, 1, 0 642; PWR8-LE-NEXT: xvcvdpsp 34, 0 643; PWR8-LE-NEXT: xvcvdpsp 35, 1 644; PWR8-LE-NEXT: vmrgew 2, 3, 2 645; PWR8-LE-NEXT: blr 646entry: 647 %0 = load float, ptr %p, align 4 648 %vecinit1 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %0, i32 0 649 ret <4 x float> %vecinit1 650} 651 652define <4 x float> @build_v4f32_load_1(ptr nocapture noundef readonly %p) { 653; PWR7-BE-LABEL: build_v4f32_load_1: 654; PWR7-BE: # %bb.0: # %entry 655; PWR7-BE-NEXT: lwz 3, 0(3) 656; PWR7-BE-NEXT: li 4, 0 657; PWR7-BE-NEXT: stw 4, -32(1) 658; PWR7-BE-NEXT: stw 3, -16(1) 659; PWR7-BE-NEXT: addis 3, 2, .LCPI13_0@toc@ha 660; PWR7-BE-NEXT: addi 3, 3, .LCPI13_0@toc@l 661; PWR7-BE-NEXT: lxvw4x 34, 0, 3 662; PWR7-BE-NEXT: addi 3, 1, -32 663; PWR7-BE-NEXT: lxvw4x 35, 0, 3 664; PWR7-BE-NEXT: addi 3, 1, -16 665; PWR7-BE-NEXT: lxvw4x 36, 0, 3 666; PWR7-BE-NEXT: vperm 2, 3, 4, 2 667; PWR7-BE-NEXT: blr 668; 669; PWR8-BE-LABEL: build_v4f32_load_1: 670; PWR8-BE: # %bb.0: # %entry 671; PWR8-BE-NEXT: lfs 0, 0(3) 672; PWR8-BE-NEXT: xxlxor 1, 1, 1 673; PWR8-BE-NEXT: xxmrghd 0, 0, 1 674; PWR8-BE-NEXT: xxspltd 1, 1, 0 675; PWR8-BE-NEXT: xvcvdpsp 34, 0 676; PWR8-BE-NEXT: xvcvdpsp 35, 1 677; PWR8-BE-NEXT: vmrgew 2, 3, 2 678; PWR8-BE-NEXT: blr 679; 680; PWR7-LE-LABEL: build_v4f32_load_1: 681; PWR7-LE: # %bb.0: # %entry 682; PWR7-LE-NEXT: li 4, 0 683; PWR7-LE-NEXT: lwz 3, 0(3) 684; PWR7-LE-NEXT: stw 4, -32(1) 685; PWR7-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha 686; PWR7-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l 687; PWR7-LE-NEXT: stw 3, -16(1) 688; PWR7-LE-NEXT: addi 3, 1, -16 689; PWR7-LE-NEXT: lxvd2x 0, 0, 4 690; PWR7-LE-NEXT: addi 4, 1, -32 691; PWR7-LE-NEXT: lxvd2x 1, 0, 4 692; PWR7-LE-NEXT: xxswapd 34, 0 693; PWR7-LE-NEXT: lxvd2x 0, 0, 3 694; PWR7-LE-NEXT: xxswapd 35, 1 695; PWR7-LE-NEXT: xxswapd 36, 0 696; PWR7-LE-NEXT: vperm 2, 4, 3, 2 697; PWR7-LE-NEXT: blr 698; 699; PWR8-LE-LABEL: build_v4f32_load_1: 700; PWR8-LE: # %bb.0: # %entry 701; PWR8-LE-NEXT: lfs 0, 0(3) 702; PWR8-LE-NEXT: xxlxor 1, 1, 1 703; PWR8-LE-NEXT: xxmrghd 0, 1, 0 704; PWR8-LE-NEXT: xxspltd 1, 1, 0 705; PWR8-LE-NEXT: xvcvdpsp 34, 0 706; PWR8-LE-NEXT: xvcvdpsp 35, 1 707; PWR8-LE-NEXT: vmrgew 2, 2, 3 708; PWR8-LE-NEXT: blr 709entry: 710 %0 = load float, ptr %p, align 4 711 %vecinit1 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %0, i32 1 712 ret <4 x float> %vecinit1 713} 714 715define <4 x float> @build_v4f32_load_2(ptr nocapture noundef readonly %p) { 716; PWR7-BE-LABEL: build_v4f32_load_2: 717; PWR7-BE: # %bb.0: # %entry 718; PWR7-BE-NEXT: lwz 3, 0(3) 719; PWR7-BE-NEXT: li 4, 0 720; PWR7-BE-NEXT: stw 4, -32(1) 721; PWR7-BE-NEXT: stw 3, -16(1) 722; PWR7-BE-NEXT: addis 3, 2, .LCPI14_0@toc@ha 723; PWR7-BE-NEXT: addi 3, 3, .LCPI14_0@toc@l 724; PWR7-BE-NEXT: lxvw4x 34, 0, 3 725; PWR7-BE-NEXT: addi 3, 1, -32 726; PWR7-BE-NEXT: lxvw4x 35, 0, 3 727; PWR7-BE-NEXT: addi 3, 1, -16 728; PWR7-BE-NEXT: lxvw4x 36, 0, 3 729; PWR7-BE-NEXT: vperm 2, 3, 4, 2 730; PWR7-BE-NEXT: blr 731; 732; PWR8-BE-LABEL: build_v4f32_load_2: 733; PWR8-BE: # %bb.0: # %entry 734; PWR8-BE-NEXT: lfs 0, 0(3) 735; PWR8-BE-NEXT: xxlxor 1, 1, 1 736; PWR8-BE-NEXT: xxmrghd 0, 1, 0 737; PWR8-BE-NEXT: xxspltd 1, 1, 0 738; PWR8-BE-NEXT: xvcvdpsp 34, 0 739; PWR8-BE-NEXT: xvcvdpsp 35, 1 740; PWR8-BE-NEXT: vmrgew 2, 2, 3 741; PWR8-BE-NEXT: blr 742; 743; PWR7-LE-LABEL: build_v4f32_load_2: 744; PWR7-LE: # %bb.0: # %entry 745; PWR7-LE-NEXT: li 4, 0 746; PWR7-LE-NEXT: lwz 3, 0(3) 747; PWR7-LE-NEXT: stw 4, -32(1) 748; PWR7-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha 749; PWR7-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l 750; PWR7-LE-NEXT: stw 3, -16(1) 751; PWR7-LE-NEXT: addi 3, 1, -16 752; PWR7-LE-NEXT: lxvd2x 0, 0, 4 753; PWR7-LE-NEXT: addi 4, 1, -32 754; PWR7-LE-NEXT: lxvd2x 1, 0, 4 755; PWR7-LE-NEXT: xxswapd 34, 0 756; PWR7-LE-NEXT: lxvd2x 0, 0, 3 757; PWR7-LE-NEXT: xxswapd 35, 1 758; PWR7-LE-NEXT: xxswapd 36, 0 759; PWR7-LE-NEXT: vperm 2, 4, 3, 2 760; PWR7-LE-NEXT: blr 761; 762; PWR8-LE-LABEL: build_v4f32_load_2: 763; PWR8-LE: # %bb.0: # %entry 764; PWR8-LE-NEXT: lfs 0, 0(3) 765; PWR8-LE-NEXT: xxlxor 1, 1, 1 766; PWR8-LE-NEXT: xxmrghd 0, 0, 1 767; PWR8-LE-NEXT: xxspltd 1, 1, 0 768; PWR8-LE-NEXT: xvcvdpsp 34, 0 769; PWR8-LE-NEXT: xvcvdpsp 35, 1 770; PWR8-LE-NEXT: vmrgew 2, 3, 2 771; PWR8-LE-NEXT: blr 772entry: 773 %0 = load float, ptr %p, align 4 774 %vecinit1 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %0, i32 2 775 ret <4 x float> %vecinit1 776} 777 778define <4 x float> @build_v4f32_load_3(ptr nocapture noundef readonly %p) { 779; PWR7-BE-LABEL: build_v4f32_load_3: 780; PWR7-BE: # %bb.0: # %entry 781; PWR7-BE-NEXT: lwz 3, 0(3) 782; PWR7-BE-NEXT: li 4, 0 783; PWR7-BE-NEXT: stw 4, -32(1) 784; PWR7-BE-NEXT: stw 3, -16(1) 785; PWR7-BE-NEXT: addis 3, 2, .LCPI15_0@toc@ha 786; PWR7-BE-NEXT: addi 3, 3, .LCPI15_0@toc@l 787; PWR7-BE-NEXT: lxvw4x 34, 0, 3 788; PWR7-BE-NEXT: addi 3, 1, -32 789; PWR7-BE-NEXT: lxvw4x 35, 0, 3 790; PWR7-BE-NEXT: addi 3, 1, -16 791; PWR7-BE-NEXT: lxvw4x 36, 0, 3 792; PWR7-BE-NEXT: vperm 2, 3, 4, 2 793; PWR7-BE-NEXT: blr 794; 795; PWR8-BE-LABEL: build_v4f32_load_3: 796; PWR8-BE: # %bb.0: # %entry 797; PWR8-BE-NEXT: lfs 0, 0(3) 798; PWR8-BE-NEXT: xxlxor 1, 1, 1 799; PWR8-BE-NEXT: xxmrghd 0, 1, 0 800; PWR8-BE-NEXT: xxspltd 1, 1, 0 801; PWR8-BE-NEXT: xvcvdpsp 34, 0 802; PWR8-BE-NEXT: xvcvdpsp 35, 1 803; PWR8-BE-NEXT: vmrgew 2, 3, 2 804; PWR8-BE-NEXT: blr 805; 806; PWR7-LE-LABEL: build_v4f32_load_3: 807; PWR7-LE: # %bb.0: # %entry 808; PWR7-LE-NEXT: li 4, 0 809; PWR7-LE-NEXT: lwz 3, 0(3) 810; PWR7-LE-NEXT: stw 4, -32(1) 811; PWR7-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha 812; PWR7-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l 813; PWR7-LE-NEXT: stw 3, -16(1) 814; PWR7-LE-NEXT: addi 3, 1, -16 815; PWR7-LE-NEXT: lxvd2x 0, 0, 4 816; PWR7-LE-NEXT: addi 4, 1, -32 817; PWR7-LE-NEXT: lxvd2x 1, 0, 4 818; PWR7-LE-NEXT: xxswapd 34, 0 819; PWR7-LE-NEXT: lxvd2x 0, 0, 3 820; PWR7-LE-NEXT: xxswapd 35, 1 821; PWR7-LE-NEXT: xxswapd 36, 0 822; PWR7-LE-NEXT: vperm 2, 4, 3, 2 823; PWR7-LE-NEXT: blr 824; 825; PWR8-LE-LABEL: build_v4f32_load_3: 826; PWR8-LE: # %bb.0: # %entry 827; PWR8-LE-NEXT: lfs 0, 0(3) 828; PWR8-LE-NEXT: xxlxor 1, 1, 1 829; PWR8-LE-NEXT: xxmrghd 0, 0, 1 830; PWR8-LE-NEXT: xxspltd 1, 1, 0 831; PWR8-LE-NEXT: xvcvdpsp 34, 0 832; PWR8-LE-NEXT: xvcvdpsp 35, 1 833; PWR8-LE-NEXT: vmrgew 2, 2, 3 834; PWR8-LE-NEXT: blr 835entry: 836 %0 = load float, ptr %p, align 4 837 %vecinit1 = insertelement <4 x float> <float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %0, i32 3 838 ret <4 x float> %vecinit1 839} 840