@@ -549,24 +549,46 @@ bb:
549549 ret void
550550}
551551
552- ; GCN-LABEL: {{^}}fadd_fadd_fsub :
552+ ; GCN-LABEL: {{^}}fadd_fadd_fsub_0 :
553553; GFX900: v_add_f32_e64 v{{[0-9]+}}, s{{[0-9]+}}, 0
554554; GFX900: v_add_f32_e32 v{{[0-9]+}}, 0, v{{[0-9]+}}
555- ; PACKED-SDAG: v_pk_add_f32 v[{{[0-9:]+}}], s[{{[0-9:]+}}], 0 op_sel_hi:[1,0]{{$}}
556- ; PACKED-SDAG: v_pk_add_f32 v[{{[0-9:]+}}], v[{{[0-9:]+}}], 0 op_sel_hi:[1,0]{{$}}
555+
556+ ; PACKED-SDAG: v_add_f32_e64 v{{[0-9]+}}, s{{[0-9]+}}, 0
557+ ; PACKED-SDAG: v_add_f32_e32 v{{[0-9]+}}, 0, v{{[0-9]+}}
558+
557559; PACKED-GISEL: v_pk_add_f32 v[{{[0-9:]+}}], s[{{[0-9:]+}}], v[{{[0-9:]+}}]{{$}}
558560; PACKED-GISEL: v_pk_add_f32 v[{{[0-9:]+}}], v[{{[0-9:]+}}], s[{{[0-9:]+}}]{{$}}
559- define amdgpu_kernel void @fadd_fadd_fsub (<2 x float > %arg ) {
561+ define amdgpu_kernel void @fadd_fadd_fsub_0 (<2 x float > %arg ) {
560562bb:
561563 %i12 = fadd <2 x float > zeroinitializer , %arg
562- %shift8 = shufflevector <2 x float > %i12 , <2 x float > undef , <2 x i32 > <i32 1 , i32 undef >
564+ %shift8 = shufflevector <2 x float > %i12 , <2 x float > poison , <2 x i32 > <i32 1 , i32 poison >
563565 %i13 = fadd <2 x float > zeroinitializer , %shift8
564566 %i14 = shufflevector <2 x float > %arg , <2 x float > %i13 , <2 x i32 > <i32 0 , i32 2 >
565567 %i15 = fsub <2 x float > %i14 , zeroinitializer
566568 store <2 x float > %i15 , ptr undef
567569 ret void
568570}
569571
572+ ; GCN-LABEL: {{^}}fadd_fadd_fsub:
573+ ; GFX900: v_add_f32_e32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}
574+ ; GFX900: v_add_f32_e32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}
575+
576+ ; PACKED-SDAG: v_add_f32_e32 v{{[0-9]+}}, s{{[0-9]+}}, v{{[0-9]+}}
577+ ; PACKED-SDAG: v_pk_add_f32 v[{{[0-9:]+}}], s[{{[0-9:]+}}], v[{{[0-9:]+}}] op_sel_hi:[1,0]{{$}}
578+
579+ ; PACKED-GISEL: v_pk_add_f32 v[{{[0-9:]+}}], s[{{[0-9:]+}}], v[{{[0-9:]+}}]{{$}}
580+ ; PACKED-GISEL: v_pk_add_f32 v[{{[0-9:]+}}], s[{{[0-9:]+}}], v[{{[0-9:]+}}]{{$}}
581+ define amdgpu_kernel void @fadd_fadd_fsub (<2 x float > %arg , <2 x float > %arg1 , ptr addrspace (1 ) %ptr ) {
582+ bb:
583+ %i12 = fadd <2 x float > %arg , %arg1
584+ %shift8 = shufflevector <2 x float > %i12 , <2 x float > poison, <2 x i32 > <i32 1 , i32 poison>
585+ %i13 = fadd <2 x float > %arg1 , %shift8
586+ %i14 = shufflevector <2 x float > %arg , <2 x float > %i13 , <2 x i32 > <i32 0 , i32 2 >
587+ %i15 = fsub <2 x float > %i14 , %arg1
588+ store <2 x float > %i15 , ptr addrspace (1 ) %ptr
589+ ret void
590+ }
591+
570592; GCN-LABEL: {{^}}fadd_shuffle_v4:
571593; GFX900-COUNT-4: v_add_f32_e32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}}
572594; PACKED-SDAG-COUNT-2: v_pk_add_f32 v[{{[0-9:]+}}], v[{{[0-9:]+}}], v[{{[0-9:]+}}] op_sel_hi:[1,0]{{$}}
0 commit comments