AMDGPU: Replace insertelement poison with insertelement undef (#130896)

This is the bulk update with perl, with cases which require additional
update left for later.
This commit is contained in:
Matt Arsenault
2025-03-12 20:33:33 +07:00
committed by GitHub
parent ab557afa40
commit da42b2f67d
145 changed files with 660 additions and 662 deletions

View File

@@ -266,7 +266,7 @@ define <4 x float> @v_uitofp_unpack_i32_to_v4f32(i32 %arg0) nounwind {
%mask.lshr.24 = and i32 %lshr.24, 255
%cvt3 = uitofp i32 %mask.lshr.24 to float
%ins.0 = insertelement <4 x float> undef, float %cvt0, i32 0
%ins.0 = insertelement <4 x float> poison, float %cvt0, i32 0
%ins.1 = insertelement <4 x float> %ins.0, float %cvt1, i32 1
%ins.2 = insertelement <4 x float> %ins.1, float %cvt2, i32 2
%ins.3 = insertelement <4 x float> %ins.2, float %cvt3, i32 3

View File

@@ -1061,7 +1061,6 @@ define { <3 x i32>, i32 } @v3i32_struct_func_void_wasted_reg() #0 {
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY [[DEF1]](<3 x s32>)
; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef`, addrspace 3)
; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef`, addrspace 3)
@@ -1081,7 +1080,7 @@ define { <3 x i32>, i32 } @v3i32_struct_func_void_wasted_reg() #0 {
%load2 = load volatile i32, ptr addrspace(3) undef
%load3 = load volatile i32, ptr addrspace(3) undef
%insert.0 = insertelement <3 x i32> undef, i32 %load0, i32 0
%insert.0 = insertelement <3 x i32> poison, i32 %load0, i32 0
%insert.1 = insertelement <3 x i32> %insert.0, i32 %load1, i32 1
%insert.2 = insertelement <3 x i32> %insert.1, i32 %load2, i32 2
%insert.3 = insertvalue { <3 x i32>, i32 } poison, <3 x i32> %insert.2, 0
@@ -1097,7 +1096,6 @@ define { <3 x float>, i32 } @v3f32_struct_func_void_wasted_reg() #0 {
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY [[DEF1]](<3 x s32>)
; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef`, addrspace 3)
; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef`, addrspace 3)
@@ -1117,7 +1115,7 @@ define { <3 x float>, i32 } @v3f32_struct_func_void_wasted_reg() #0 {
%load2 = load volatile float, ptr addrspace(3) undef
%load3 = load volatile i32, ptr addrspace(3) undef
%insert.0 = insertelement <3 x float> undef, float %load0, i32 0
%insert.0 = insertelement <3 x float> poison, float %load0, i32 0
%insert.1 = insertelement <3 x float> %insert.0, float %load1, i32 1
%insert.2 = insertelement <3 x float> %insert.1, float %load2, i32 2
%insert.3 = insertvalue { <3 x float>, i32 } poison, <3 x float> %insert.2, 0

View File

@@ -17,7 +17,7 @@ bb:
%load = load <2 x i32>, ptr addrspace(3) %gep, align 4
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr addrspace(3) %gep, align 4
ret void
@@ -39,7 +39,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3
@@ -62,7 +62,7 @@ bb:
%v1 = extractelement <3 x i32> %load, i32 0
%v2 = extractelement <3 x i32> %load, i32 1
%v3 = extractelement <3 x i32> %load, i32 2
%v5 = insertelement <3 x i32> undef, i32 %v3, i32 0
%v5 = insertelement <3 x i32> poison, i32 %v3, i32 0
%v6 = insertelement <3 x i32> %v5, i32 %v1, i32 1
%v7 = insertelement <3 x i32> %v6, i32 %v2, i32 2
store <3 x i32> %v7, ptr addrspace(3) %gep, align 4
@@ -79,7 +79,7 @@ bb:
%load = load <2 x i32>, ptr addrspace(3) %gep, align 8
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr addrspace(3) %gep, align 8
ret void
@@ -96,7 +96,7 @@ bb:
%v1 = extractelement <3 x i32> %load, i32 0
%v2 = extractelement <3 x i32> %load, i32 1
%v3 = extractelement <3 x i32> %load, i32 2
%v5 = insertelement <3 x i32> undef, i32 %v3, i32 0
%v5 = insertelement <3 x i32> poison, i32 %v3, i32 0
%v6 = insertelement <3 x i32> %v5, i32 %v1, i32 1
%v7 = insertelement <3 x i32> %v6, i32 %v2, i32 2
store <3 x i32> %v7, ptr addrspace(3) %gep, align 16
@@ -121,7 +121,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3

View File

@@ -33,13 +33,13 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray_flat(i32 %node_ptr, float
; GCN-NEXT: image_bvh_intersect_ray v[0:3], v[0:10], s[0:3]
; GCN-NEXT: s_waitcnt vmcnt(0)
; GCN-NEXT: ; return to shader part epilog
%ray_origin0 = insertelement <3 x float> undef, float %ray_origin_x, i32 0
%ray_origin0 = insertelement <3 x float> poison, float %ray_origin_x, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float %ray_origin_y, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float %ray_origin_z, i32 2
%ray_dir0 = insertelement <3 x float> undef, float %ray_dir_x, i32 0
%ray_dir0 = insertelement <3 x float> poison, float %ray_dir_x, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float %ray_dir_y, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float %ray_dir_z, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float %ray_inv_dir_x, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float %ray_inv_dir_x, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float %ray_inv_dir_y, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float %ray_inv_dir_z, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f32(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -96,13 +96,13 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray_flat(<2 x i32> %node_ptr
; GCN-NEXT: s_waitcnt vmcnt(0)
; GCN-NEXT: ; return to shader part epilog
%node_ptr = bitcast <2 x i32> %node_ptr_vec to i64
%ray_origin0 = insertelement <3 x float> undef, float %ray_origin_x, i32 0
%ray_origin0 = insertelement <3 x float> poison, float %ray_origin_x, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float %ray_origin_y, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float %ray_origin_z, i32 2
%ray_dir0 = insertelement <3 x float> undef, float %ray_dir_x, i32 0
%ray_dir0 = insertelement <3 x float> poison, float %ray_dir_x, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float %ray_dir_y, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float %ray_dir_z, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float %ray_inv_dir_x, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float %ray_inv_dir_x, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float %ray_inv_dir_y, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float %ray_inv_dir_z, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f32(i64 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -725,13 +725,13 @@ define amdgpu_kernel void @image_bvh_intersect_ray_nsa_reassign(ptr %p_node_ptr,
%node_ptr = load i32, ptr %gep_node_ptr, align 4
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x float> undef, float 3.0, i32 0
%ray_dir0 = insertelement <3 x float> poison, float 3.0, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float 4.0, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float 7.0, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f32(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -829,13 +829,13 @@ define amdgpu_kernel void @image_bvh_intersect_ray_a16_nsa_reassign(ptr %p_node_
%node_ptr = load i32, ptr %gep_node_ptr, align 4
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x half> undef, half 3.0, i32 0
%ray_dir0 = insertelement <3 x half> poison, half 3.0, i32 0
%ray_dir1 = insertelement <3 x half> %ray_dir0, half 4.0, i32 1
%ray_dir = insertelement <3 x half> %ray_dir1, half 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x half> undef, half 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x half> poison, half 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x half> %ray_inv_dir0, half 7.0, i32 1
%ray_inv_dir = insertelement <3 x half> %ray_inv_dir1, half 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f16(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr)
@@ -911,13 +911,13 @@ define amdgpu_kernel void @image_bvh64_intersect_ray_nsa_reassign(ptr %p_ray, <4
%lid = tail call i32 @llvm.amdgcn.workitem.id.x()
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x float> undef, float 3.0, i32 0
%ray_dir0 = insertelement <3 x float> poison, float 3.0, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float 4.0, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float 7.0, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f32(i64 1111111111111, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -985,13 +985,13 @@ define amdgpu_kernel void @image_bvh64_intersect_ray_a16_nsa_reassign(ptr %p_ray
%lid = tail call i32 @llvm.amdgcn.workitem.id.x()
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x half> undef, half 3.0, i32 0
%ray_dir0 = insertelement <3 x half> poison, half 3.0, i32 0
%ray_dir1 = insertelement <3 x half> %ray_dir0, half 4.0, i32 1
%ray_dir = insertelement <3 x half> %ray_dir1, half 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x half> undef, half 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x half> poison, half 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x half> %ray_inv_dir0, half 7.0, i32 1
%ray_inv_dir = insertelement <3 x half> %ray_inv_dir1, half 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f16(i64 1111111111110, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr)

View File

@@ -368,7 +368,7 @@ define amdgpu_ps i64 @s_sdiv_i64(i64 inreg %num, i64 inreg %den) {
%elt.1 = extractelement <2 x i32> %cast, i32 1
%res.0 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.0)
%res.1 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.1)
%ins.0 = insertelement <2 x i32> undef, i32 %res.0, i32 0
%ins.0 = insertelement <2 x i32> poison, i32 %res.0, i32 0
%ins.1 = insertelement <2 x i32> %ins.0, i32 %res.0, i32 1
%cast.back = bitcast <2 x i32> %ins.1 to i64
ret i64 %cast.back

View File

@@ -358,7 +358,7 @@ define amdgpu_ps i64 @s_srem_i64(i64 inreg %num, i64 inreg %den) {
%elt.1 = extractelement <2 x i32> %cast, i32 1
%res.0 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.0)
%res.1 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.1)
%ins.0 = insertelement <2 x i32> undef, i32 %res.0, i32 0
%ins.0 = insertelement <2 x i32> poison, i32 %res.0, i32 0
%ins.1 = insertelement <2 x i32> %ins.0, i32 %res.0, i32 1
%cast.back = bitcast <2 x i32> %ins.1 to i64
ret i64 %cast.back

View File

@@ -355,7 +355,7 @@ define amdgpu_ps i64 @s_udiv_i64(i64 inreg %num, i64 inreg %den) {
%elt.1 = extractelement <2 x i32> %cast, i32 1
%res.0 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.0)
%res.1 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.1)
%ins.0 = insertelement <2 x i32> undef, i32 %res.0, i32 0
%ins.0 = insertelement <2 x i32> poison, i32 %res.0, i32 0
%ins.1 = insertelement <2 x i32> %ins.0, i32 %res.0, i32 1
%cast.back = bitcast <2 x i32> %ins.1 to i64
ret i64 %cast.back

View File

@@ -349,7 +349,7 @@ define amdgpu_ps i64 @s_urem_i64(i64 inreg %num, i64 inreg %den) {
%elt.1 = extractelement <2 x i32> %cast, i32 1
%res.0 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.0)
%res.1 = call i32 @llvm.amdgcn.readfirstlane(i32 %elt.1)
%ins.0 = insertelement <2 x i32> undef, i32 %res.0, i32 0
%ins.0 = insertelement <2 x i32> poison, i32 %res.0, i32 0
%ins.1 = insertelement <2 x i32> %ins.0, i32 %res.0, i32 1
%cast.back = bitcast <2 x i32> %ins.1 to i64
ret i64 %cast.back

View File

@@ -90,7 +90,7 @@ entry:
%xor = xor i32 %a, %b
%r0.val = xor i32 %xor, -1
%r1.val = add i32 %xor, %a
%ins0 = insertelement <2 x i32> undef, i32 %r0.val, i32 0
%ins0 = insertelement <2 x i32> poison, i32 %r0.val, i32 0
%ins1 = insertelement <2 x i32> %ins0, i32 %r1.val, i32 1
ret <2 x i32> %ins1
}
@@ -196,7 +196,7 @@ define amdgpu_ps <2 x i64> @scalar_xnor_i64_mul_use(i64 inreg %a, i64 inreg %b)
%xor = xor i64 %a, %b
%r0.val = xor i64 %xor, -1
%r1.val = add i64 %xor, %a
%ins0 = insertelement <2 x i64> undef, i64 %r0.val, i32 0
%ins0 = insertelement <2 x i64> poison, i64 %r0.val, i32 0
%ins1 = insertelement <2 x i64> %ins0, i64 %r1.val, i32 1
ret <2 x i64> %ins1
}

View File

@@ -181,7 +181,7 @@ define amdgpu_ps <2 x float> @add3_multiuse_outer(i32 %a, i32 %b, i32 %c, i32 %x
%inner = add i32 %a, %b
%outer = add i32 %inner, %c
%x1 = mul i32 %outer, %x
%r1 = insertelement <2 x i32> undef, i32 %outer, i32 0
%r1 = insertelement <2 x i32> poison, i32 %outer, i32 0
%r0 = insertelement <2 x i32> %r1, i32 %x1, i32 1
%bc = bitcast <2 x i32> %r0 to <2 x float>
ret <2 x float> %bc
@@ -207,7 +207,7 @@ define amdgpu_ps <2 x float> @add3_multiuse_inner(i32 %a, i32 %b, i32 %c) {
; GFX10-NEXT: ; return to shader part epilog
%inner = add i32 %a, %b
%outer = add i32 %inner, %c
%r1 = insertelement <2 x i32> undef, i32 %inner, i32 0
%r1 = insertelement <2 x i32> poison, i32 %inner, i32 0
%r0 = insertelement <2 x i32> %r1, i32 %outer, i32 1
%bc = bitcast <2 x i32> %r0 to <2 x float>
ret <2 x float> %bc

View File

@@ -17,7 +17,7 @@ define amdgpu_hs void @_amdgpu_hs_main(i32 inreg %arg, i32 inreg %arg1, i32 inre
.beginls: ; preds = %.entry
%tmp15 = extractelement <6 x i32> %arg8, i32 3
%.0.vec.insert.i = insertelement <2 x i32> undef, i32 %tmp15, i32 0
%.0.vec.insert.i = insertelement <2 x i32> poison, i32 %tmp15, i32 0
%.4.vec.insert.i = shufflevector <2 x i32> %.0.vec.insert.i, <2 x i32> undef, <2 x i32> <i32 0, i32 3>
%tmp16 = bitcast <2 x i32> %.4.vec.insert.i to i64
br label %.endls

View File

@@ -36,7 +36,7 @@ bb:
%tmp21 = getelementptr inbounds <8 x i8>, ptr addrspace(1) %arg, i64 4
%tmp23 = load <16 x i8>, ptr addrspace(1) %tmp21, align 16
%tmp24 = extractelement <16 x i8> %tmp23, i64 3
%tmp1 = insertelement <16 x i8> undef, i8 %tmp3, i32 2
%tmp1 = insertelement <16 x i8> poison, i8 %tmp3, i32 2
%tmp4 = insertelement <16 x i8> %tmp1, i8 0, i32 3
%tmp5 = insertelement <16 x i8> %tmp4, i8 0, i32 4
%tmp7 = insertelement <16 x i8> %tmp5, i8 %tmp6, i32 5

View File

@@ -187,7 +187,7 @@ define amdgpu_kernel void @anyext_v2i16_to_v2i32() #0 {
; GFX9-NEXT: s_endpgm
bb:
%tmp = load i16, ptr addrspace(1) undef, align 2
%tmp2 = insertelement <2 x i16> undef, i16 %tmp, i32 1
%tmp2 = insertelement <2 x i16> poison, i16 %tmp, i32 1
%tmp4 = and <2 x i16> %tmp2, <i16 -32767, i16 -32767>
%tmp5 = zext <2 x i16> %tmp4 to <2 x i32>
%tmp6 = shl nuw <2 x i32> %tmp5, <i32 16, i32 16>

View File

@@ -189,7 +189,7 @@ define amdgpu_ps float @fptrunc_f32_f32_to_v2bf16(float %a, float %b) {
entry:
%a.cvt = fptrunc float %a to bfloat
%b.cvt = fptrunc float %b to bfloat
%v2.1 = insertelement <2 x bfloat> undef, bfloat %a.cvt, i32 0
%v2.1 = insertelement <2 x bfloat> poison, bfloat %a.cvt, i32 0
%v2.2 = insertelement <2 x bfloat> %v2.1, bfloat %b.cvt, i32 1
%ret = bitcast <2 x bfloat> %v2.2 to float
ret float %ret
@@ -226,7 +226,7 @@ entry:
%a.cvt = fptrunc float %a.neg to bfloat
%b.abs = call float @llvm.fabs.f32(float %b)
%b.cvt = fptrunc float %b.abs to bfloat
%v2.1 = insertelement <2 x bfloat> undef, bfloat %a.cvt, i32 0
%v2.1 = insertelement <2 x bfloat> poison, bfloat %a.cvt, i32 0
%v2.2 = insertelement <2 x bfloat> %v2.1, bfloat %b.cvt, i32 1
%ret = bitcast <2 x bfloat> %v2.2 to float
ret float %ret

View File

@@ -297,7 +297,7 @@ define amdgpu_kernel void @v_bfi_dont_applied_for_scalar_ops(ptr addrspace(1) %o
; GCN-NEXT: s_endpgm
%shift = lshr i32 %b, 16
%tr = trunc i32 %shift to i16
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %tr, i32 1
%val = bitcast <2 x i16> %vec to i32
store i32 %val, ptr addrspace(1) %out, align 4

View File

@@ -90,11 +90,11 @@ main_body:
br i1 %tmp81, label %IF137, label %ENDIF136
IF137: ; preds = %main_body
%tmp82 = insertelement <4 x float> undef, float %tmp30, i32 0
%tmp82 = insertelement <4 x float> poison, float %tmp30, i32 0
%tmp83 = insertelement <4 x float> %tmp82, float %tmp31, i32 1
%tmp84 = insertelement <4 x float> %tmp83, float %tmp32, i32 2
%tmp85 = insertelement <4 x float> %tmp84, float 0.000000e+00, i32 3
%tmp86 = insertelement <4 x float> undef, float %tmp30, i32 0
%tmp86 = insertelement <4 x float> poison, float %tmp30, i32 0
%tmp87 = insertelement <4 x float> %tmp86, float %tmp31, i32 1
%tmp88 = insertelement <4 x float> %tmp87, float %tmp32, i32 2
%tmp89 = insertelement <4 x float> %tmp88, float 0.000000e+00, i32 3
@@ -103,20 +103,20 @@ IF137: ; preds = %main_body
%tmp92 = fmul float %tmp30, %tmp91
%tmp93 = fmul float %tmp31, %tmp91
%tmp94 = fmul float %tmp32, %tmp91
%tmp95 = insertelement <4 x float> undef, float %tmp92, i32 0
%tmp95 = insertelement <4 x float> poison, float %tmp92, i32 0
%tmp96 = insertelement <4 x float> %tmp95, float %tmp93, i32 1
%tmp97 = insertelement <4 x float> %tmp96, float %tmp94, i32 2
%tmp98 = insertelement <4 x float> %tmp97, float 0.000000e+00, i32 3
%tmp99 = insertelement <4 x float> undef, float %tmp37, i32 0
%tmp99 = insertelement <4 x float> poison, float %tmp37, i32 0
%tmp100 = insertelement <4 x float> %tmp99, float %tmp38, i32 1
%tmp101 = insertelement <4 x float> %tmp100, float %tmp39, i32 2
%tmp102 = insertelement <4 x float> %tmp101, float 0.000000e+00, i32 3
%tmp103 = call float @llvm.r600.dot4(<4 x float> %tmp98, <4 x float> %tmp102)
%tmp104 = insertelement <4 x float> undef, float %tmp92, i32 0
%tmp104 = insertelement <4 x float> poison, float %tmp92, i32 0
%tmp105 = insertelement <4 x float> %tmp104, float %tmp93, i32 1
%tmp106 = insertelement <4 x float> %tmp105, float %tmp94, i32 2
%tmp107 = insertelement <4 x float> %tmp106, float 0.000000e+00, i32 3
%tmp108 = insertelement <4 x float> undef, float %tmp40, i32 0
%tmp108 = insertelement <4 x float> poison, float %tmp40, i32 0
%tmp109 = insertelement <4 x float> %tmp108, float %tmp41, i32 1
%tmp110 = insertelement <4 x float> %tmp109, float %tmp42, i32 2
%tmp111 = insertelement <4 x float> %tmp110, float 0.000000e+00, i32 3
@@ -124,11 +124,11 @@ IF137: ; preds = %main_body
%tmp113 = fsub float -0.000000e+00, %tmp92
%tmp114 = fsub float -0.000000e+00, %tmp93
%tmp115 = fsub float -0.000000e+00, %tmp94
%tmp116 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp116 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp117 = insertelement <4 x float> %tmp116, float %tmp35, i32 1
%tmp118 = insertelement <4 x float> %tmp117, float %tmp36, i32 2
%tmp119 = insertelement <4 x float> %tmp118, float 0.000000e+00, i32 3
%tmp120 = insertelement <4 x float> undef, float %tmp113, i32 0
%tmp120 = insertelement <4 x float> poison, float %tmp113, i32 0
%tmp121 = insertelement <4 x float> %tmp120, float %tmp114, i32 1
%tmp122 = insertelement <4 x float> %tmp121, float %tmp115, i32 2
%tmp123 = insertelement <4 x float> %tmp122, float 0.000000e+00, i32 3
@@ -155,7 +155,7 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp138 = fmul float %tmp26, 0x3F847AE140000000
%tmp139 = fmul float %tmp27, 0x3F847AE140000000
%tmp140 = fmul float %tmp28, 0x3F847AE140000000
%tmp141 = insertelement <4 x float> undef, float %tmp138, i32 0
%tmp141 = insertelement <4 x float> poison, float %tmp138, i32 0
%tmp142 = insertelement <4 x float> %tmp141, float %tmp139, i32 1
%tmp143 = insertelement <4 x float> %tmp142, float %tmp140, i32 2
%tmp144 = insertelement <4 x float> %tmp143, float 0.000000e+00, i32 3
@@ -163,7 +163,7 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp146 = extractelement <4 x float> %tmp144, i32 1
%tmp147 = extractelement <4 x float> %tmp144, i32 2
%tmp148 = extractelement <4 x float> %tmp144, i32 3
%tmp149 = insertelement <4 x float> undef, float %tmp145, i32 0
%tmp149 = insertelement <4 x float> poison, float %tmp145, i32 0
%tmp150 = insertelement <4 x float> %tmp149, float %tmp146, i32 1
%tmp151 = insertelement <4 x float> %tmp150, float %tmp147, i32 2
%tmp152 = insertelement <4 x float> %tmp151, float %tmp148, i32 3
@@ -176,7 +176,7 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp159 = fmul float %tmp26, 0x3F45A07B40000000
%tmp160 = fmul float %tmp27, 0x3F45A07B40000000
%tmp161 = fmul float %tmp28, 0x3F45A07B40000000
%tmp162 = insertelement <4 x float> undef, float %tmp159, i32 0
%tmp162 = insertelement <4 x float> poison, float %tmp159, i32 0
%tmp163 = insertelement <4 x float> %tmp162, float %tmp160, i32 1
%tmp164 = insertelement <4 x float> %tmp163, float %tmp161, i32 2
%tmp165 = insertelement <4 x float> %tmp164, float 0.000000e+00, i32 3
@@ -184,7 +184,7 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp167 = extractelement <4 x float> %tmp165, i32 1
%tmp168 = extractelement <4 x float> %tmp165, i32 2
%tmp169 = extractelement <4 x float> %tmp165, i32 3
%tmp170 = insertelement <4 x float> undef, float %tmp166, i32 0
%tmp170 = insertelement <4 x float> poison, float %tmp166, i32 0
%tmp171 = insertelement <4 x float> %tmp170, float %tmp167, i32 1
%tmp172 = insertelement <4 x float> %tmp171, float %tmp168, i32 2
%tmp173 = insertelement <4 x float> %tmp172, float %tmp169, i32 3
@@ -251,28 +251,28 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp227 = fmul float %clamp.i14, %tmp226
%tmp228 = fmul float %tmp26, 0x3F368B5CC0000000
%tmp229 = fmul float %tmp27, 0x3F368B5CC0000000
%tmp230 = insertelement <4 x float> undef, float %tmp228, i32 0
%tmp230 = insertelement <4 x float> poison, float %tmp228, i32 0
%tmp231 = insertelement <4 x float> %tmp230, float %tmp229, i32 1
%tmp232 = insertelement <4 x float> %tmp231, float 0.000000e+00, i32 2
%tmp233 = insertelement <4 x float> %tmp232, float 0.000000e+00, i32 3
%tmp234 = extractelement <4 x float> %tmp233, i32 0
%tmp235 = extractelement <4 x float> %tmp233, i32 1
%tmp236 = insertelement <4 x float> undef, float %tmp234, i32 0
%tmp236 = insertelement <4 x float> poison, float %tmp234, i32 0
%tmp237 = insertelement <4 x float> %tmp236, float %tmp235, i32 1
%tmp238 = insertelement <4 x float> %tmp237, float undef, i32 2
%tmp239 = insertelement <4 x float> %tmp238, float undef, i32 3
%tmp238 = insertelement <4 x float> %tmp237, float poison, i32 2
%tmp239 = insertelement <4 x float> %tmp238, float poison, i32 3
%tmp240 = shufflevector <4 x float> %tmp239, <4 x float> %tmp239, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp241 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp240, i32 0, i32 0, i32 0, i32 17, i32 1, i32 1, i32 1, i32 1, i32 1)
%tmp242 = extractelement <4 x float> %tmp241, i32 0
%tmp243 = insertelement <4 x float> undef, float %tmp242, i32 0
%tmp243 = insertelement <4 x float> poison, float %tmp242, i32 0
%tmp244 = insertelement <4 x float> %tmp243, float %tmp229, i32 1
%tmp245 = insertelement <4 x float> %tmp244, float 0.000000e+00, i32 2
%tmp246 = insertelement <4 x float> %tmp245, float 0.000000e+00, i32 3
%tmp247 = extractelement <4 x float> %tmp246, i32 0
%tmp248 = insertelement <4 x float> undef, float %tmp247, i32 0
%tmp249 = insertelement <4 x float> %tmp248, float undef, i32 1
%tmp250 = insertelement <4 x float> %tmp249, float undef, i32 2
%tmp251 = insertelement <4 x float> %tmp250, float undef, i32 3
%tmp248 = insertelement <4 x float> poison, float %tmp247, i32 0
%tmp249 = insertelement <4 x float> %tmp248, float poison, i32 1
%tmp250 = insertelement <4 x float> %tmp249, float poison, i32 2
%tmp251 = insertelement <4 x float> %tmp250, float poison, i32 3
%tmp252 = shufflevector <4 x float> %tmp251, <4 x float> %tmp251, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp253 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp252, i32 0, i32 0, i32 0, i32 18, i32 2, i32 1, i32 1, i32 1, i32 1)
%tmp254 = extractelement <4 x float> %tmp253, i32 0
@@ -312,16 +312,16 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp285 = fmul float %clamp.i8, %tmp284
%tmp286 = fmul float %tmp26, 0x3F22DFD6A0000000
%tmp287 = fmul float %tmp27, 0x3F22DFD6A0000000
%tmp288 = insertelement <4 x float> undef, float %tmp286, i32 0
%tmp288 = insertelement <4 x float> poison, float %tmp286, i32 0
%tmp289 = insertelement <4 x float> %tmp288, float %tmp287, i32 1
%tmp290 = insertelement <4 x float> %tmp289, float 0.000000e+00, i32 2
%tmp291 = insertelement <4 x float> %tmp290, float 0.000000e+00, i32 3
%tmp292 = extractelement <4 x float> %tmp291, i32 0
%tmp293 = extractelement <4 x float> %tmp291, i32 1
%tmp294 = insertelement <4 x float> undef, float %tmp292, i32 0
%tmp294 = insertelement <4 x float> poison, float %tmp292, i32 0
%tmp295 = insertelement <4 x float> %tmp294, float %tmp293, i32 1
%tmp296 = insertelement <4 x float> %tmp295, float undef, i32 2
%tmp297 = insertelement <4 x float> %tmp296, float undef, i32 3
%tmp296 = insertelement <4 x float> %tmp295, float poison, i32 2
%tmp297 = insertelement <4 x float> %tmp296, float poison, i32 3
%tmp298 = shufflevector <4 x float> %tmp297, <4 x float> %tmp297, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp299 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp298, i32 0, i32 0, i32 0, i32 19, i32 3, i32 1, i32 1, i32 1, i32 1)
%tmp300 = extractelement <4 x float> %tmp299, i32 0
@@ -347,11 +347,11 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp320 = fadd float %tmp319, %tmp314
%tmp321 = fmul float %temp70.0, %tmp36
%tmp322 = fadd float %tmp321, %tmp316
%tmp323 = insertelement <4 x float> undef, float %tmp318, i32 0
%tmp323 = insertelement <4 x float> poison, float %tmp318, i32 0
%tmp324 = insertelement <4 x float> %tmp323, float %tmp320, i32 1
%tmp325 = insertelement <4 x float> %tmp324, float %tmp322, i32 2
%tmp326 = insertelement <4 x float> %tmp325, float 0.000000e+00, i32 3
%tmp327 = insertelement <4 x float> undef, float %tmp318, i32 0
%tmp327 = insertelement <4 x float> poison, float %tmp318, i32 0
%tmp328 = insertelement <4 x float> %tmp327, float %tmp320, i32 1
%tmp329 = insertelement <4 x float> %tmp328, float %tmp322, i32 2
%tmp330 = insertelement <4 x float> %tmp329, float 0.000000e+00, i32 3
@@ -380,11 +380,11 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp353 = fsub float -0.000000e+00, %result.i
%tmp354 = fsub float -0.000000e+00, %tmp347
%tmp355 = fadd float %tmp353, %tmp354
%tmp356 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp356 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp357 = insertelement <4 x float> %tmp356, float %tmp44, i32 1
%tmp358 = insertelement <4 x float> %tmp357, float %tmp45, i32 2
%tmp359 = insertelement <4 x float> %tmp358, float 0.000000e+00, i32 3
%tmp360 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp360 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp361 = insertelement <4 x float> %tmp360, float %tmp44, i32 1
%tmp362 = insertelement <4 x float> %tmp361, float %tmp45, i32 2
%tmp363 = insertelement <4 x float> %tmp362, float 0.000000e+00, i32 3
@@ -407,11 +407,11 @@ ENDIF136: ; preds = %ENDIF154, %main_bod
%tmp379 = fsub float -0.000000e+00, %result.i
%tmp380 = fsub float -0.000000e+00, %tmp347
%tmp381 = fadd float %tmp379, %tmp380
%tmp382 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp382 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp383 = insertelement <4 x float> %tmp382, float %tmp44, i32 1
%tmp384 = insertelement <4 x float> %tmp383, float %tmp45, i32 2
%tmp385 = insertelement <4 x float> %tmp384, float 0.000000e+00, i32 3
%tmp386 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp386 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp387 = insertelement <4 x float> %tmp386, float %tmp44, i32 1
%tmp388 = insertelement <4 x float> %tmp387, float %tmp45, i32 2
%tmp389 = insertelement <4 x float> %tmp388, float 0.000000e+00, i32 3
@@ -492,16 +492,16 @@ IF140: ; preds = %LOOP
%tmp422 = fadd float %tmp421, %tmp22
%tmp423 = fmul float %tmp130, %temp92.0
%tmp424 = fadd float %tmp423, %tmp23
%tmp425 = insertelement <4 x float> undef, float %tmp422, i32 0
%tmp425 = insertelement <4 x float> poison, float %tmp422, i32 0
%tmp426 = insertelement <4 x float> %tmp425, float %tmp424, i32 1
%tmp427 = insertelement <4 x float> %tmp426, float 0.000000e+00, i32 2
%tmp428 = insertelement <4 x float> %tmp427, float 0.000000e+00, i32 3
%tmp429 = extractelement <4 x float> %tmp428, i32 0
%tmp430 = extractelement <4 x float> %tmp428, i32 1
%tmp431 = insertelement <4 x float> undef, float %tmp429, i32 0
%tmp431 = insertelement <4 x float> poison, float %tmp429, i32 0
%tmp432 = insertelement <4 x float> %tmp431, float %tmp430, i32 1
%tmp433 = insertelement <4 x float> %tmp432, float undef, i32 2
%tmp434 = insertelement <4 x float> %tmp433, float undef, i32 3
%tmp433 = insertelement <4 x float> %tmp432, float poison, i32 2
%tmp434 = insertelement <4 x float> %tmp433, float poison, i32 3
%tmp435 = shufflevector <4 x float> %tmp434, <4 x float> %tmp434, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp436 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp435, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp437 = extractelement <4 x float> %tmp436, i32 3
@@ -518,16 +518,16 @@ ENDIF139: ; preds = %LOOP
%tmp445 = fadd float %tmp444, %tmp22
%tmp446 = fmul float %tmp130, %tmp443
%tmp447 = fadd float %tmp446, %tmp23
%tmp448 = insertelement <4 x float> undef, float %tmp445, i32 0
%tmp448 = insertelement <4 x float> poison, float %tmp445, i32 0
%tmp449 = insertelement <4 x float> %tmp448, float %tmp447, i32 1
%tmp450 = insertelement <4 x float> %tmp449, float 0.000000e+00, i32 2
%tmp451 = insertelement <4 x float> %tmp450, float 0.000000e+00, i32 3
%tmp452 = extractelement <4 x float> %tmp451, i32 0
%tmp453 = extractelement <4 x float> %tmp451, i32 1
%tmp454 = insertelement <4 x float> undef, float %tmp452, i32 0
%tmp454 = insertelement <4 x float> poison, float %tmp452, i32 0
%tmp455 = insertelement <4 x float> %tmp454, float %tmp453, i32 1
%tmp456 = insertelement <4 x float> %tmp455, float undef, i32 2
%tmp457 = insertelement <4 x float> %tmp456, float undef, i32 3
%tmp456 = insertelement <4 x float> %tmp455, float poison, i32 2
%tmp457 = insertelement <4 x float> %tmp456, float poison, i32 3
%tmp458 = shufflevector <4 x float> %tmp457, <4 x float> %tmp457, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp459 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp458, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp460 = extractelement <4 x float> %tmp459, i32 3
@@ -563,16 +563,16 @@ ENDIF145: ; preds = %IF146, %IF140
%tmp482 = fadd float %tmp481, %tmp22
%tmp483 = fmul float %tmp130, %tmp479
%tmp484 = fadd float %tmp483, %tmp23
%tmp485 = insertelement <4 x float> undef, float %tmp482, i32 0
%tmp485 = insertelement <4 x float> poison, float %tmp482, i32 0
%tmp486 = insertelement <4 x float> %tmp485, float %tmp484, i32 1
%tmp487 = insertelement <4 x float> %tmp486, float 0.000000e+00, i32 2
%tmp488 = insertelement <4 x float> %tmp487, float %tmp437, i32 3
%tmp489 = extractelement <4 x float> %tmp488, i32 0
%tmp490 = extractelement <4 x float> %tmp488, i32 1
%tmp491 = insertelement <4 x float> undef, float %tmp489, i32 0
%tmp491 = insertelement <4 x float> poison, float %tmp489, i32 0
%tmp492 = insertelement <4 x float> %tmp491, float %tmp490, i32 1
%tmp493 = insertelement <4 x float> %tmp492, float undef, i32 2
%tmp494 = insertelement <4 x float> %tmp493, float undef, i32 3
%tmp493 = insertelement <4 x float> %tmp492, float poison, i32 2
%tmp494 = insertelement <4 x float> %tmp493, float poison, i32 3
%tmp495 = shufflevector <4 x float> %tmp494, <4 x float> %tmp494, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp496 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp495, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp497 = extractelement <4 x float> %tmp496, i32 3
@@ -598,16 +598,16 @@ ENDIF148: ; preds = %IF149, %ENDIF145
%tmp509 = fadd float %tmp508, %tmp22
%tmp510 = fmul float %tmp130, %tmp506
%tmp511 = fadd float %tmp510, %tmp23
%tmp512 = insertelement <4 x float> undef, float %tmp509, i32 0
%tmp512 = insertelement <4 x float> poison, float %tmp509, i32 0
%tmp513 = insertelement <4 x float> %tmp512, float %tmp511, i32 1
%tmp514 = insertelement <4 x float> %tmp513, float 0.000000e+00, i32 2
%tmp515 = insertelement <4 x float> %tmp514, float %tmp497, i32 3
%tmp516 = extractelement <4 x float> %tmp515, i32 0
%tmp517 = extractelement <4 x float> %tmp515, i32 1
%tmp518 = insertelement <4 x float> undef, float %tmp516, i32 0
%tmp518 = insertelement <4 x float> poison, float %tmp516, i32 0
%tmp519 = insertelement <4 x float> %tmp518, float %tmp517, i32 1
%tmp520 = insertelement <4 x float> %tmp519, float undef, i32 2
%tmp521 = insertelement <4 x float> %tmp520, float undef, i32 3
%tmp520 = insertelement <4 x float> %tmp519, float poison, i32 2
%tmp521 = insertelement <4 x float> %tmp520, float poison, i32 3
%tmp522 = shufflevector <4 x float> %tmp521, <4 x float> %tmp521, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp523 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp522, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp524 = extractelement <4 x float> %tmp523, i32 3
@@ -633,16 +633,16 @@ ENDIF151: ; preds = %IF152, %ENDIF148
%tmp536 = fadd float %tmp535, %tmp22
%tmp537 = fmul float %tmp130, %tmp533
%tmp538 = fadd float %tmp537, %tmp23
%tmp539 = insertelement <4 x float> undef, float %tmp536, i32 0
%tmp539 = insertelement <4 x float> poison, float %tmp536, i32 0
%tmp540 = insertelement <4 x float> %tmp539, float %tmp538, i32 1
%tmp541 = insertelement <4 x float> %tmp540, float 0.000000e+00, i32 2
%tmp542 = insertelement <4 x float> %tmp541, float %tmp524, i32 3
%tmp543 = extractelement <4 x float> %tmp542, i32 0
%tmp544 = extractelement <4 x float> %tmp542, i32 1
%tmp545 = insertelement <4 x float> undef, float %tmp543, i32 0
%tmp545 = insertelement <4 x float> poison, float %tmp543, i32 0
%tmp546 = insertelement <4 x float> %tmp545, float %tmp544, i32 1
%tmp547 = insertelement <4 x float> %tmp546, float undef, i32 2
%tmp548 = insertelement <4 x float> %tmp547, float undef, i32 3
%tmp547 = insertelement <4 x float> %tmp546, float poison, i32 2
%tmp548 = insertelement <4 x float> %tmp547, float poison, i32 3
%tmp549 = shufflevector <4 x float> %tmp548, <4 x float> %tmp548, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp550 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp549, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp551 = extractelement <4 x float> %tmp550, i32 3
@@ -667,16 +667,16 @@ ENDIF154: ; preds = %IF155, %ENDIF151
%tmp562 = fadd float %tmp561, %tmp22
%tmp563 = fmul float %tmp130, %tmp560
%tmp564 = fadd float %tmp563, %tmp23
%tmp565 = insertelement <4 x float> undef, float %tmp562, i32 0
%tmp565 = insertelement <4 x float> poison, float %tmp562, i32 0
%tmp566 = insertelement <4 x float> %tmp565, float %tmp564, i32 1
%tmp567 = insertelement <4 x float> %tmp566, float 0.000000e+00, i32 2
%tmp568 = insertelement <4 x float> %tmp567, float %tmp551, i32 3
%tmp569 = extractelement <4 x float> %tmp568, i32 0
%tmp570 = extractelement <4 x float> %tmp568, i32 1
%tmp571 = insertelement <4 x float> undef, float %tmp569, i32 0
%tmp571 = insertelement <4 x float> poison, float %tmp569, i32 0
%tmp572 = insertelement <4 x float> %tmp571, float %tmp570, i32 1
%tmp573 = insertelement <4 x float> %tmp572, float undef, i32 2
%tmp574 = insertelement <4 x float> %tmp573, float undef, i32 3
%tmp573 = insertelement <4 x float> %tmp572, float poison, i32 2
%tmp574 = insertelement <4 x float> %tmp573, float poison, i32 3
%tmp575 = shufflevector <4 x float> %tmp574, <4 x float> %tmp574, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp576 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp575, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp577 = extractelement <4 x float> %tmp576, i32 3
@@ -690,16 +690,16 @@ ENDIF154: ; preds = %IF155, %ENDIF151
%tmp584 = fadd float %tmp583, %tmp22
%tmp585 = fmul float %tmp130, %.temp92.4
%tmp586 = fadd float %tmp585, %tmp23
%tmp587 = insertelement <4 x float> undef, float %tmp584, i32 0
%tmp587 = insertelement <4 x float> poison, float %tmp584, i32 0
%tmp588 = insertelement <4 x float> %tmp587, float %tmp586, i32 1
%tmp589 = insertelement <4 x float> %tmp588, float 0.000000e+00, i32 2
%tmp590 = insertelement <4 x float> %tmp589, float %tmp577, i32 3
%tmp591 = extractelement <4 x float> %tmp590, i32 0
%tmp592 = extractelement <4 x float> %tmp590, i32 1
%tmp593 = insertelement <4 x float> undef, float %tmp591, i32 0
%tmp593 = insertelement <4 x float> poison, float %tmp591, i32 0
%tmp594 = insertelement <4 x float> %tmp593, float %tmp592, i32 1
%tmp595 = insertelement <4 x float> %tmp594, float undef, i32 2
%tmp596 = insertelement <4 x float> %tmp595, float undef, i32 3
%tmp595 = insertelement <4 x float> %tmp594, float poison, i32 2
%tmp596 = insertelement <4 x float> %tmp595, float poison, i32 3
%tmp597 = shufflevector <4 x float> %tmp596, <4 x float> %tmp596, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp598 = call <4 x float> @llvm.r600.tex(<4 x float> %tmp597, i32 0, i32 0, i32 0, i32 20, i32 4, i32 1, i32 1, i32 1, i32 1)
%tmp599 = extractelement <4 x float> %tmp598, i32 0
@@ -735,11 +735,11 @@ IF161: ; preds = %ENDIF136
%one.sub.ac.i126 = fmul float %one.sub.a.i125, %tmp307
%mul.i127 = fmul float %result.i160, %tmp307
%result.i128 = fadd float %mul.i127, %one.sub.ac.i126
%tmp613 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp613 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp614 = insertelement <4 x float> %tmp613, float %tmp334, i32 1
%tmp615 = insertelement <4 x float> %tmp614, float %tmp335, i32 2
%tmp616 = insertelement <4 x float> %tmp615, float 0.000000e+00, i32 3
%tmp617 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp617 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp618 = insertelement <4 x float> %tmp617, float %tmp65, i32 1
%tmp619 = insertelement <4 x float> %tmp618, float %tmp67, i32 2
%tmp620 = insertelement <4 x float> %tmp619, float 0.000000e+00, i32 3
@@ -749,11 +749,11 @@ IF161: ; preds = %ENDIF136
%tmp624 = fmul float %tmp8, %tmp623
%tmp625 = fmul float %tmp13, %tmp623
%tmp626 = fmul float %tmp18, %tmp623
%tmp627 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp627 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp628 = insertelement <4 x float> %tmp627, float %tmp35, i32 1
%tmp629 = insertelement <4 x float> %tmp628, float %tmp36, i32 2
%tmp630 = insertelement <4 x float> %tmp629, float 0.000000e+00, i32 3
%tmp631 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp631 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp632 = insertelement <4 x float> %tmp631, float %tmp65, i32 1
%tmp633 = insertelement <4 x float> %tmp632, float %tmp67, i32 2
%tmp634 = insertelement <4 x float> %tmp633, float 0.000000e+00, i32 3
@@ -809,11 +809,11 @@ IF164: ; preds = %ENDIF160
%one.sub.ac.i110 = fmul float %one.sub.a.i109, %tmp307
%mul.i111 = fmul float %result.i160, %tmp307
%result.i112 = fadd float %mul.i111, %one.sub.ac.i110
%tmp658 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp658 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp659 = insertelement <4 x float> %tmp658, float %tmp334, i32 1
%tmp660 = insertelement <4 x float> %tmp659, float %tmp335, i32 2
%tmp661 = insertelement <4 x float> %tmp660, float 0.000000e+00, i32 3
%tmp662 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp662 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp663 = insertelement <4 x float> %tmp662, float %tmp65, i32 1
%tmp664 = insertelement <4 x float> %tmp663, float %tmp67, i32 2
%tmp665 = insertelement <4 x float> %tmp664, float 0.000000e+00, i32 3
@@ -823,11 +823,11 @@ IF164: ; preds = %ENDIF160
%tmp669 = fmul float %tmp8, %tmp668
%tmp670 = fmul float %tmp13, %tmp668
%tmp671 = fmul float %tmp18, %tmp668
%tmp672 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp672 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp673 = insertelement <4 x float> %tmp672, float %tmp35, i32 1
%tmp674 = insertelement <4 x float> %tmp673, float %tmp36, i32 2
%tmp675 = insertelement <4 x float> %tmp674, float 0.000000e+00, i32 3
%tmp676 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp676 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp677 = insertelement <4 x float> %tmp676, float %tmp65, i32 1
%tmp678 = insertelement <4 x float> %tmp677, float %tmp67, i32 2
%tmp679 = insertelement <4 x float> %tmp678, float 0.000000e+00, i32 3
@@ -883,11 +883,11 @@ IF167: ; preds = %ENDIF163
%one.sub.ac.i94 = fmul float %one.sub.a.i93, %tmp307
%mul.i95 = fmul float %result.i144, %tmp307
%result.i96 = fadd float %mul.i95, %one.sub.ac.i94
%tmp703 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp703 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp704 = insertelement <4 x float> %tmp703, float %tmp334, i32 1
%tmp705 = insertelement <4 x float> %tmp704, float %tmp335, i32 2
%tmp706 = insertelement <4 x float> %tmp705, float 0.000000e+00, i32 3
%tmp707 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp707 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp708 = insertelement <4 x float> %tmp707, float %tmp65, i32 1
%tmp709 = insertelement <4 x float> %tmp708, float %tmp67, i32 2
%tmp710 = insertelement <4 x float> %tmp709, float 0.000000e+00, i32 3
@@ -897,11 +897,11 @@ IF167: ; preds = %ENDIF163
%tmp714 = fmul float %tmp8, %tmp713
%tmp715 = fmul float %tmp13, %tmp713
%tmp716 = fmul float %tmp18, %tmp713
%tmp717 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp717 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp718 = insertelement <4 x float> %tmp717, float %tmp35, i32 1
%tmp719 = insertelement <4 x float> %tmp718, float %tmp36, i32 2
%tmp720 = insertelement <4 x float> %tmp719, float 0.000000e+00, i32 3
%tmp721 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp721 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp722 = insertelement <4 x float> %tmp721, float %tmp65, i32 1
%tmp723 = insertelement <4 x float> %tmp722, float %tmp67, i32 2
%tmp724 = insertelement <4 x float> %tmp723, float 0.000000e+00, i32 3
@@ -957,11 +957,11 @@ IF170: ; preds = %ENDIF166
%one.sub.ac.i78 = fmul float %one.sub.a.i77, %tmp307
%mul.i79 = fmul float %result.i144, %tmp307
%result.i80 = fadd float %mul.i79, %one.sub.ac.i78
%tmp748 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp748 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp749 = insertelement <4 x float> %tmp748, float %tmp334, i32 1
%tmp750 = insertelement <4 x float> %tmp749, float %tmp335, i32 2
%tmp751 = insertelement <4 x float> %tmp750, float 0.000000e+00, i32 3
%tmp752 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp752 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp753 = insertelement <4 x float> %tmp752, float %tmp65, i32 1
%tmp754 = insertelement <4 x float> %tmp753, float %tmp67, i32 2
%tmp755 = insertelement <4 x float> %tmp754, float 0.000000e+00, i32 3
@@ -971,11 +971,11 @@ IF170: ; preds = %ENDIF166
%tmp759 = fmul float %tmp8, %tmp758
%tmp760 = fmul float %tmp13, %tmp758
%tmp761 = fmul float %tmp18, %tmp758
%tmp762 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp762 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp763 = insertelement <4 x float> %tmp762, float %tmp35, i32 1
%tmp764 = insertelement <4 x float> %tmp763, float %tmp36, i32 2
%tmp765 = insertelement <4 x float> %tmp764, float 0.000000e+00, i32 3
%tmp766 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp766 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp767 = insertelement <4 x float> %tmp766, float %tmp65, i32 1
%tmp768 = insertelement <4 x float> %tmp767, float %tmp67, i32 2
%tmp769 = insertelement <4 x float> %tmp768, float 0.000000e+00, i32 3
@@ -1031,11 +1031,11 @@ IF173: ; preds = %ENDIF169
%one.sub.ac.i62 = fmul float %one.sub.a.i61, %tmp307
%mul.i63 = fmul float %result.i160, %tmp307
%result.i64 = fadd float %mul.i63, %one.sub.ac.i62
%tmp793 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp793 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp794 = insertelement <4 x float> %tmp793, float %tmp334, i32 1
%tmp795 = insertelement <4 x float> %tmp794, float %tmp335, i32 2
%tmp796 = insertelement <4 x float> %tmp795, float 0.000000e+00, i32 3
%tmp797 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp797 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp798 = insertelement <4 x float> %tmp797, float %tmp65, i32 1
%tmp799 = insertelement <4 x float> %tmp798, float %tmp67, i32 2
%tmp800 = insertelement <4 x float> %tmp799, float 0.000000e+00, i32 3
@@ -1045,11 +1045,11 @@ IF173: ; preds = %ENDIF169
%tmp804 = fmul float %tmp8, %tmp803
%tmp805 = fmul float %tmp13, %tmp803
%tmp806 = fmul float %tmp18, %tmp803
%tmp807 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp807 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp808 = insertelement <4 x float> %tmp807, float %tmp35, i32 1
%tmp809 = insertelement <4 x float> %tmp808, float %tmp36, i32 2
%tmp810 = insertelement <4 x float> %tmp809, float 0.000000e+00, i32 3
%tmp811 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp811 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp812 = insertelement <4 x float> %tmp811, float %tmp65, i32 1
%tmp813 = insertelement <4 x float> %tmp812, float %tmp67, i32 2
%tmp814 = insertelement <4 x float> %tmp813, float 0.000000e+00, i32 3
@@ -1098,11 +1098,11 @@ IF176: ; preds = %ENDIF172
%one.sub.ac.i46 = fmul float %one.sub.a.i45, %tmp307
%mul.i47 = fmul float %result.i160, %tmp307
%result.i48 = fadd float %mul.i47, %one.sub.ac.i46
%tmp831 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp831 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp832 = insertelement <4 x float> %tmp831, float %tmp334, i32 1
%tmp833 = insertelement <4 x float> %tmp832, float %tmp335, i32 2
%tmp834 = insertelement <4 x float> %tmp833, float 0.000000e+00, i32 3
%tmp835 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp835 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp836 = insertelement <4 x float> %tmp835, float %tmp65, i32 1
%tmp837 = insertelement <4 x float> %tmp836, float %tmp67, i32 2
%tmp838 = insertelement <4 x float> %tmp837, float 0.000000e+00, i32 3
@@ -1112,11 +1112,11 @@ IF176: ; preds = %ENDIF172
%tmp842 = fmul float %tmp8, %tmp841
%tmp843 = fmul float %tmp13, %tmp841
%tmp844 = fmul float %tmp18, %tmp841
%tmp845 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp845 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp846 = insertelement <4 x float> %tmp845, float %tmp35, i32 1
%tmp847 = insertelement <4 x float> %tmp846, float %tmp36, i32 2
%tmp848 = insertelement <4 x float> %tmp847, float 0.000000e+00, i32 3
%tmp849 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp849 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp850 = insertelement <4 x float> %tmp849, float %tmp65, i32 1
%tmp851 = insertelement <4 x float> %tmp850, float %tmp67, i32 2
%tmp852 = insertelement <4 x float> %tmp851, float 0.000000e+00, i32 3
@@ -1149,11 +1149,11 @@ IF179: ; preds = %ENDIF175
%tmp866 = fadd float %result.i, 1.000000e+00
%tmp867 = fadd float %result.i, 1.000000e+00
%tmp868 = fadd float %result.i, 1.000000e+00
%tmp869 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp869 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp870 = insertelement <4 x float> %tmp869, float %tmp44, i32 1
%tmp871 = insertelement <4 x float> %tmp870, float %tmp45, i32 2
%tmp872 = insertelement <4 x float> %tmp871, float 0.000000e+00, i32 3
%tmp873 = insertelement <4 x float> undef, float %tmp43, i32 0
%tmp873 = insertelement <4 x float> poison, float %tmp43, i32 0
%tmp874 = insertelement <4 x float> %tmp873, float %tmp44, i32 1
%tmp875 = insertelement <4 x float> %tmp874, float %tmp45, i32 2
%tmp876 = insertelement <4 x float> %tmp875, float 0.000000e+00, i32 3
@@ -1209,11 +1209,11 @@ IF179: ; preds = %ENDIF175
%one.sub.ac.i14 = fmul float %one.sub.a.i13, %temp87.5
%mul.i15 = fmul float %result.i32, %temp87.5
%result.i16 = fadd float %mul.i15, %one.sub.ac.i14
%tmp896 = insertelement <4 x float> undef, float %tmp333, i32 0
%tmp896 = insertelement <4 x float> poison, float %tmp333, i32 0
%tmp897 = insertelement <4 x float> %tmp896, float %tmp334, i32 1
%tmp898 = insertelement <4 x float> %tmp897, float %tmp335, i32 2
%tmp899 = insertelement <4 x float> %tmp898, float 0.000000e+00, i32 3
%tmp900 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp900 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp901 = insertelement <4 x float> %tmp900, float %tmp65, i32 1
%tmp902 = insertelement <4 x float> %tmp901, float %tmp67, i32 2
%tmp903 = insertelement <4 x float> %tmp902, float 0.000000e+00, i32 3
@@ -1223,11 +1223,11 @@ IF179: ; preds = %ENDIF175
%tmp907 = fmul float %tmp8, %tmp906
%tmp908 = fmul float %tmp13, %tmp906
%tmp909 = fmul float %tmp18, %tmp906
%tmp910 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp910 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp911 = insertelement <4 x float> %tmp910, float %tmp35, i32 1
%tmp912 = insertelement <4 x float> %tmp911, float %tmp36, i32 2
%tmp913 = insertelement <4 x float> %tmp912, float 0.000000e+00, i32 3
%tmp914 = insertelement <4 x float> undef, float %tmp63, i32 0
%tmp914 = insertelement <4 x float> poison, float %tmp63, i32 0
%tmp915 = insertelement <4 x float> %tmp914, float %tmp65, i32 1
%tmp916 = insertelement <4 x float> %tmp915, float %tmp67, i32 2
%tmp917 = insertelement <4 x float> %tmp916, float 0.000000e+00, i32 3
@@ -1289,7 +1289,7 @@ ENDIF178: ; preds = %IF179, %ENDIF175
%one.sub.ac.i2 = fmul float %one.sub.a.i1, %tmp51
%mul.i3 = fmul float %tmp930, %tmp51
%result.i4 = fadd float %mul.i3, %one.sub.ac.i2
%tmp953 = insertelement <4 x float> undef, float %result.i12, i32 0
%tmp953 = insertelement <4 x float> poison, float %result.i12, i32 0
%tmp954 = insertelement <4 x float> %tmp953, float %result.i8, i32 1
%tmp955 = insertelement <4 x float> %tmp954, float %result.i4, i32 2
%tmp956 = insertelement <4 x float> %tmp955, float %tmp931, i32 3

View File

@@ -48,9 +48,9 @@ bb1789: ; preds = %bb1750
%i1883 = shufflevector <3 x i32> %i1882, <3 x i32> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
%i1884 = bitcast <4 x i32> %i1883 to <4 x float>
%i1885 = shufflevector <4 x float> %i1884, <4 x float> poison, <3 x i32> <i32 0, i32 1, i32 2>
%i1886 = insertelement <3 x i32> undef, i32 %i1819, i64 0
%i1886 = insertelement <3 x i32> poison, i32 %i1819, i64 0
%i1887 = bitcast <3 x i32> %i1886 to <3 x float>
%i1888 = insertelement <3 x i32> undef, i32 %i1801, i64 0
%i1888 = insertelement <3 x i32> poison, i32 %i1801, i64 0
%i1889 = bitcast <3 x i32> %i1888 to <3 x float>
%i1890 = fmul reassoc nnan nsz arcp contract afn <3 x float> %i1887, %i1889
%i1891 = shufflevector <3 x float> %i1890, <3 x float> poison, <3 x i32> zeroinitializer

View File

@@ -15,15 +15,15 @@ entry:
%tmp2 = getelementptr inbounds double, ptr addrspace(1) %tmp1, i64 undef
%tmp4 = load <3 x double>, ptr addrspace(1) %tmp2, align 8, !tbaa !6
%tmp5 = extractelement <3 x double> %tmp4, i32 1
%tmp6 = insertelement <3 x double> undef, double %tmp5, i32 1
%tmp7 = insertelement <3 x double> %tmp6, double undef, i32 2
%tmp6 = insertelement <3 x double> poison, double %tmp5, i32 1
%tmp7 = insertelement <3 x double> %tmp6, double poison, i32 2
%tmp8 = load <3 x double>, ptr addrspace(1) undef, align 8, !tbaa !6
%tmp9 = extractelement <3 x double> %tmp8, i32 2
%tmp10 = insertelement <3 x double> undef, double %tmp9, i32 2
%tmp10 = insertelement <3 x double> poison, double %tmp9, i32 2
%tmp11 = fcmp olt <3 x double> %tmp10, %tmp7
%tmp12 = select <3 x i1> %tmp11, <3 x double> zeroinitializer, <3 x double> <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
%tmp13 = extractelement <3 x double> %tmp12, i64 1
%tmp14 = insertelement <2 x double> undef, double %tmp13, i32 1
%tmp14 = insertelement <2 x double> poison, double %tmp13, i32 1
store <2 x double> %tmp14, ptr addrspace(1) undef, align 8, !tbaa !6
ret void
}
@@ -42,12 +42,12 @@ entry:
%tmp2 = getelementptr inbounds double, ptr addrspace(1) %tmp1, i64 undef
%tmp4 = load <3 x double>, ptr addrspace(1) %tmp2, align 8, !tbaa !6
%tmp5 = extractelement <3 x double> %tmp4, i32 1
%tmp6 = insertelement <3 x double> undef, double %tmp5, i32 1
%tmp7 = insertelement <3 x double> %tmp6, double undef, i32 2
%tmp6 = insertelement <3 x double> poison, double %tmp5, i32 1
%tmp7 = insertelement <3 x double> %tmp6, double poison, i32 2
%tmp8 = load <3 x double>, ptr addrspace(1) undef, align 8, !tbaa !6
%tmp9 = extractelement <3 x double> %tmp8, i32 1
%tmp10 = insertelement <3 x double> undef, double %tmp9, i32 1
%tmp11 = insertelement <3 x double> %tmp10, double undef, i32 2
%tmp10 = insertelement <3 x double> poison, double %tmp9, i32 1
%tmp11 = insertelement <3 x double> %tmp10, double poison, i32 2
%tmp12 = fcmp olt <3 x double> %tmp11, %tmp7
%tmp13 = select <3 x i1> %tmp12, <3 x double> zeroinitializer, <3 x double> <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
%tmp14 = extractelement <3 x double> %tmp13, i64 2

View File

@@ -15,7 +15,7 @@ bb1:
%tmp2 = phi half [ 0xH0000, %bb ], [ %tmp8, %bb1 ]
%tmp3 = load volatile half, ptr null, align 536870912
%tmp4 = bitcast half %tmp3 to i16
%tmp5 = insertelement <2 x i16> <i16 0, i16 undef>, i16 %tmp4, i32 1
%tmp5 = insertelement <2 x i16> <i16 0, i16 poison>, i16 %tmp4, i32 1
store volatile half %tmp2, ptr %arg, align 2
%tmp7 = bitcast <2 x i16> %tmp to <2 x half>
%tmp8 = extractelement <2 x half> %tmp7, i32 0

View File

@@ -20,7 +20,7 @@ define void @undef_lo_v2i16(i16 %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <2 x i16> undef, i16 %arg0, i32 1
%undef.lo = insertelement <2 x i16> poison, i16 %arg0, i32 1
call void asm sideeffect "; use $0", "v"(<2 x i16> %undef.lo);
ret void
}
@@ -43,7 +43,7 @@ define void @undef_lo_v2f16(half %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <2 x half> undef, half %arg0, i32 1
%undef.lo = insertelement <2 x half> poison, half %arg0, i32 1
call void asm sideeffect "; use $0", "v"(<2 x half> %undef.lo);
ret void
}
@@ -69,7 +69,7 @@ define void @undef_lo_op_v2f16(half %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <2 x half> undef, half %arg0, i32 1
%undef.lo = insertelement <2 x half> poison, half %arg0, i32 1
%op = fadd <2 x half> %undef.lo, <half 1.0, half 1.0>
call void asm sideeffect "; use $0", "v"(<2 x half> %op);
ret void
@@ -96,7 +96,7 @@ define void @undef_lo_op_v2i16(i16 %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <2 x i16> undef, i16 %arg0, i32 1
%undef.lo = insertelement <2 x i16> poison, i16 %arg0, i32 1
%op = add <2 x i16> %undef.lo, <i16 99, i16 99>
call void asm sideeffect "; use $0", "v"(<2 x i16> %op);
ret void
@@ -120,7 +120,7 @@ define void @undef_lo3_v4i16(i16 %arg0) {
; GFX8-NEXT: ; use v[0:1]
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <4 x i16> undef, i16 %arg0, i32 1
%undef.lo = insertelement <4 x i16> poison, i16 %arg0, i32 1
call void asm sideeffect "; use $0", "v"(<4 x i16> %undef.lo);
ret void
}
@@ -143,7 +143,7 @@ define void @undef_lo3_v4f16(half %arg0) {
; GFX8-NEXT: ; use v[0:1]
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.lo = insertelement <4 x half> undef, half %arg0, i32 1
%undef.lo = insertelement <4 x half> poison, half %arg0, i32 1
call void asm sideeffect "; use $0", "v"(<4 x half> %undef.lo);
ret void
}
@@ -214,7 +214,7 @@ define void @undef_hi_v2i16(i16 %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <2 x i16> undef, i16 %arg0, i32 0
%undef.hi = insertelement <2 x i16> poison, i16 %arg0, i32 0
call void asm sideeffect "; use $0", "v"(<2 x i16> %undef.hi);
ret void
}
@@ -235,7 +235,7 @@ define void @undef_hi_v2f16(half %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <2 x half> undef, half %arg0, i32 0
%undef.hi = insertelement <2 x half> poison, half %arg0, i32 0
call void asm sideeffect "; use $0", "v"(<2 x half> %undef.hi);
ret void
}
@@ -259,7 +259,7 @@ define void @undef_hi_op_v2f16(half %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <2 x half> undef, half %arg0, i32 0
%undef.hi = insertelement <2 x half> poison, half %arg0, i32 0
%op = fadd <2 x half> %undef.hi, <half 1.0, half 1.0>
call void asm sideeffect "; use $0", "v"(<2 x half> %op);
ret void
@@ -284,7 +284,7 @@ define void @undef_hi_op_v2i16(i16 %arg0) {
; GFX8-NEXT: ; use v0
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <2 x i16> undef, i16 %arg0, i32 0
%undef.hi = insertelement <2 x i16> poison, i16 %arg0, i32 0
%op = add <2 x i16> %undef.hi, <i16 99, i16 99>
call void asm sideeffect "; use $0", "v"(<2 x i16> %op);
ret void
@@ -306,7 +306,7 @@ define void @undef_hi3_v4i16(i16 %arg0) {
; GFX8-NEXT: ; use v[0:1]
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <4 x i16> undef, i16 %arg0, i32 0
%undef.hi = insertelement <4 x i16> poison, i16 %arg0, i32 0
call void asm sideeffect "; use $0", "v"(<4 x i16> %undef.hi);
ret void
}
@@ -327,7 +327,7 @@ define void @undef_hi3_v4f16(half %arg0) {
; GFX8-NEXT: ; use v[0:1]
; GFX8-NEXT: ;;#ASMEND
; GFX8-NEXT: s_setpc_b64 s[30:31]
%undef.hi = insertelement <4 x half> undef, half %arg0, i32 0
%undef.hi = insertelement <4 x half> poison, half %arg0, i32 0
call void asm sideeffect "; use $0", "v"(<4 x half> %undef.hi);
ret void
}

View File

@@ -72,7 +72,7 @@ define amdgpu_kernel void @build_vector_v2i16_trunc (ptr addrspace(1) %out, i32
; R600-NEXT: 327680(4.591775e-40), 2(2.802597e-45)
%srl = lshr i32 %a, 16
%trunc = trunc i32 %srl to i16
%ins.0 = insertelement <2 x i16> undef, i16 %trunc, i32 0
%ins.0 = insertelement <2 x i16> poison, i16 %trunc, i32 0
%ins.1 = insertelement <2 x i16> %ins.0, i16 5, i32 1
store <2 x i16> %ins.1, ptr addrspace(1) %out
ret void

View File

@@ -245,7 +245,7 @@ define amdgpu_kernel void @build_vector_v2i16_trunc (ptr addrspace(1) %out, i32
; GFX942-NEXT: s_endpgm
%srl = lshr i32 %a, 16
%trunc = trunc i32 %srl to i16
%ins.0 = insertelement <2 x i16> undef, i16 %trunc, i32 0
%ins.0 = insertelement <2 x i16> poison, i16 %trunc, i32 0
%ins.1 = insertelement <2 x i16> %ins.0, i16 5, i32 1
store <2 x i16> %ins.1, ptr addrspace(1) %out
ret void

View File

@@ -860,7 +860,7 @@ define <2 x i64> @sdivrem64(i64 %a, i64 %b) {
; GFX9-NEXT: s_setpc_b64 s[30:31]
%d = sdiv i64 %a, %b
%r = srem i64 %a, %b
%ins.0 = insertelement <2 x i64> undef, i64 %d, i32 0
%ins.0 = insertelement <2 x i64> poison, i64 %d, i32 0
%ins.1 = insertelement <2 x i64> %ins.0, i64 %r, i32 1
ret <2 x i64> %ins.1
}
@@ -1012,7 +1012,7 @@ define <2 x i64> @udivrem64(i64 %a, i64 %b) {
; GFX9-NEXT: s_setpc_b64 s[30:31]
%d = udiv i64 %a, %b
%r = urem i64 %a, %b
%ins.0 = insertelement <2 x i64> undef, i64 %d, i32 0
%ins.0 = insertelement <2 x i64> poison, i64 %d, i32 0
%ins.1 = insertelement <2 x i64> %ins.0, i64 %r, i32 1
ret <2 x i64> %ins.1
}

View File

@@ -72,7 +72,7 @@ bb:
%load_lo = load half, ptr addrspace(5) %gep_lo
%load_hi = load half, ptr addrspace(5) null
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -133,7 +133,7 @@ bb:
%load_lo = load half, ptr addrspace(5) %base_lo
%load_hi = load half, ptr addrspace(5) %base_hi
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -197,7 +197,7 @@ bb:
%arith_lo = fadd half %in, 1.0
%load_hi = load half, ptr addrspace(5) %base
%temp = insertelement <2 x half> undef, half %arith_lo, i32 0
%temp = insertelement <2 x half> poison, half %arith_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -238,7 +238,7 @@ bb:
%load_lo = load half, ptr addrspace(3) %gep_lo
%load_hi = load half, ptr addrspace(3) null
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -275,7 +275,7 @@ bb:
%load_lo = load half, ptr addrspace(3) %base_lo
%load_hi = load half, ptr addrspace(3) %base_hi
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -334,7 +334,7 @@ bb:
%load_lo = load half, ptr addrspace(1) %gep_lo
%load_hi = load half, ptr addrspace(1) null
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -377,7 +377,7 @@ bb:
%load_lo = load half, ptr addrspace(1) %base_lo
%load_hi = load half, ptr addrspace(1) %base_hi
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -440,7 +440,7 @@ bb:
%load_lo = load half, ptr %gep_lo
%load_hi = load half, ptr null
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -486,7 +486,7 @@ bb:
%load_lo = load half, ptr %base_lo
%load_hi = load half, ptr %base_hi
%temp = insertelement <2 x half> undef, half %load_lo, i32 0
%temp = insertelement <2 x half> poison, half %load_lo, i32 0
%result = insertelement <2 x half> %temp, half %load_hi, i32 1
ret <2 x half> %result
@@ -740,7 +740,7 @@ bb:
%gep_lo = getelementptr inbounds i16, ptr addrspace(3) %ptr, i64 1
%load_lo = load i16, ptr addrspace(3) %gep_lo
%load_hi = load i16, ptr addrspace(3) %ptr
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%op.hi = add <2 x i16> %to.hi, <i16 12, i16 12>
%result = insertelement <2 x i16> %op.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
@@ -794,7 +794,7 @@ bb:
%gep_lo = getelementptr inbounds i16, ptr addrspace(3) %ptr, i64 1
%load_lo = load volatile i16, ptr addrspace(3) %gep_lo
%load_hi = load volatile i16, ptr addrspace(3) %ptr
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%op.hi = add <2 x i16> %to.hi, <i16 12, i16 12>
%result = insertelement <2 x i16> %op.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
@@ -859,7 +859,7 @@ bb:
%gep_lo = getelementptr inbounds i16, ptr addrspace(5) %ptr, i64 1
%load_lo = load i16, ptr addrspace(5) %gep_lo
%load_hi = load i16, ptr addrspace(5) %ptr
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%op.hi = add <2 x i16> %to.hi, <i16 12, i16 12>
%result = insertelement <2 x i16> %op.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
@@ -929,7 +929,7 @@ bb:
%gep_lo = getelementptr inbounds i16, ptr addrspace(1) %ptr, i64 1
%load_lo = load volatile i16, ptr addrspace(1) %gep_lo
%load_hi = load volatile i16, ptr addrspace(1) %ptr
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%op.hi = add <2 x i16> %to.hi, <i16 12, i16 12>
%result = insertelement <2 x i16> %op.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
@@ -1004,7 +1004,7 @@ bb:
%gep_lo = getelementptr inbounds i16, ptr addrspace(0) %ptr, i64 1
%load_lo = load volatile i16, ptr addrspace(0) %gep_lo
%load_hi = load volatile i16, ptr addrspace(0) %ptr
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%op.hi = add <2 x i16> %to.hi, <i16 12, i16 12>
%result = insertelement <2 x i16> %op.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
@@ -1073,7 +1073,7 @@ bb:
store i16 123, ptr addrspace(3) %may.alias
%load_lo = load i16, ptr addrspace(3) %gep_lo
%to.hi = insertelement <2 x i16> undef, i16 %load_hi, i32 1
%to.hi = insertelement <2 x i16> poison, i16 %load_hi, i32 1
%result = insertelement <2 x i16> %to.hi, i16 %load_lo, i32 0
ret <2 x i16> %result
}

View File

@@ -26,7 +26,7 @@ loop:
%v3 = phi float [0.0, %entry], [%fma.3, %loop]
; Try to get the 0 constant to get coalesced into a wide register
%blup = insertelement <4 x float> undef, float %v0, i32 0
%blup = insertelement <4 x float> poison, float %v0, i32 0
store <4 x float> %blup, ptr addrspace(1) %out
%load = load <4 x float>, ptr addrspace(1) %in
@@ -48,7 +48,7 @@ exit:
%ev1 = phi float [0.0, %entry], [%fma.1, %loop]
%ev2 = phi float [0.0, %entry], [%fma.2, %loop]
%ev3 = phi float [0.0, %entry], [%fma.3, %loop]
%dst.0 = insertelement <4 x float> undef, float %ev0, i32 0
%dst.0 = insertelement <4 x float> poison, float %ev0, i32 0
%dst.1 = insertelement <4 x float> %dst.0, float %ev1, i32 1
%dst.2 = insertelement <4 x float> %dst.1, float %ev2, i32 2
%dst.3 = insertelement <4 x float> %dst.2, float %ev3, i32 3

View File

@@ -1365,7 +1365,7 @@ bb4: ; preds = %bb2
br i1 %tmp7, label %bb8, label %Flow
bb8: ; preds = %bb4
%tmp9 = insertelement <4 x float> undef, float 0.0, i32 1
%tmp9 = insertelement <4 x float> poison, float 0.0, i32 1
br label %Flow
Flow: ; preds = %bb8, %bb4

View File

@@ -8,7 +8,7 @@ entry:
%1 = call float @fabsf(float %0)
%2 = fptoui float %1 to i32
%3 = bitcast i32 %2 to float
%4 = insertelement <4 x float> undef, float %3, i32 0
%4 = insertelement <4 x float> poison, float %3, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %4, i32 0, i32 0)
ret void
}

View File

@@ -18,7 +18,7 @@ define amdgpu_kernel void @cube(ptr addrspace(1) %out, float %a, float %b, float
%cubetc = call float @llvm.amdgcn.cubetc(float %a, float %b, float %c)
%cubema = call float @llvm.amdgcn.cubema(float %a, float %b, float %c)
%vec0 = insertelement <4 x float> undef, float %cubeid, i32 0
%vec0 = insertelement <4 x float> poison, float %cubeid, i32 0
%vec1 = insertelement <4 x float> %vec0, float %cubesc, i32 1
%vec2 = insertelement <4 x float> %vec1, float %cubetc, i32 2
%vec3 = insertelement <4 x float> %vec2, float %cubema, i32 3

View File

@@ -456,7 +456,7 @@ define <4 x float> @v_uitofp_unpack_i32_to_v4f32(i32 %arg0) nounwind {
%mask.lshr.24 = and i32 %lshr.24, 255
%cvt3 = uitofp i32 %mask.lshr.24 to float
%ins.0 = insertelement <4 x float> undef, float %cvt0, i32 0
%ins.0 = insertelement <4 x float> poison, float %cvt0, i32 0
%ins.1 = insertelement <4 x float> %ins.0, float %cvt1, i32 1
%ins.2 = insertelement <4 x float> %ins.1, float %cvt2, i32 2
%ins.3 = insertelement <4 x float> %ins.2, float %cvt3, i32 3

View File

@@ -16,12 +16,12 @@ define amdgpu_ps void @main(i32 %in1, i32 inreg %arg) local_unnamed_addr {
br i1 %cond, label %bb12, label %bb
bb:
%__llpc_global_proxy_r5.12.vec.insert = insertelement <4 x i32> undef, i32 %in1, i32 3
%__llpc_global_proxy_r5.12.vec.insert = insertelement <4 x i32> poison, i32 %in1, i32 3
%tmp3 = shufflevector <4 x i32> %__llpc_global_proxy_r5.12.vec.insert, <4 x i32> undef, <3 x i32> <i32 undef, i32 undef, i32 1>
%tmp4 = bitcast <3 x i32> %tmp3 to <3 x float>
%a2.i123 = extractelement <3 x float> %tmp4, i32 2
%tmp5 = bitcast float %a2.i123 to i32
%__llpc_global_proxy_r2.0.vec.insert196 = insertelement <4 x i32> undef, i32 %tmp5, i32 0
%__llpc_global_proxy_r2.0.vec.insert196 = insertelement <4 x i32> poison, i32 %tmp5, i32 0
br label %bb12
bb12:

View File

@@ -15,7 +15,7 @@ entry:
%ptr = getelementptr i32, ptr addrspace(1) %in, i32 1
%sint = load i32, ptr addrspace(1) %in
%conv = sitofp i32 %sint to float
%0 = insertelement <4 x float> undef, float %conv, i32 0
%0 = insertelement <4 x float> poison, float %conv, i32 0
%splat = shufflevector <4 x float> %0, <4 x float> undef, <4 x i32> zeroinitializer
store <4 x float> %splat, ptr addrspace(1) %out
ret void
@@ -29,7 +29,7 @@ entry:
%ptr = getelementptr i32, ptr addrspace(1) %in, i32 1
%uint = load i32, ptr addrspace(1) %in
%conv = uitofp i32 %uint to float
%0 = insertelement <4 x float> undef, float %conv, i32 0
%0 = insertelement <4 x float> poison, float %conv, i32 0
%splat = shufflevector <4 x float> %0, <4 x float> undef, <4 x i32> zeroinitializer
store <4 x float> %splat, ptr addrspace(1) %out
ret void

View File

@@ -14,7 +14,7 @@ entry:
sw.bb4:
%x = load i64, ptr addrspace(1) undef, align 8
%c = sitofp i64 %x to float
%v = insertelement <2 x float> <float undef, float 0.000000e+00>, float %c, i32 0
%v = insertelement <2 x float> <float poison, float 0.000000e+00>, float %c, i32 0
br label %foo.exit
sw.bb10:

View File

@@ -29,8 +29,8 @@ bb21: ; preds = %bb
br label %bb28
bb25: ; preds = %bb
%tmp26 = insertelement <4 x float> undef, float 0.000000e+00, i32 1
%tmp27 = insertelement <4 x float> %tmp26, float undef, i32 2
%tmp26 = insertelement <4 x float> poison, float 0.000000e+00, i32 1
%tmp27 = insertelement <4 x float> %tmp26, float poison, i32 2
br label %bb28
bb28: ; preds = %bb25, %bb21
@@ -52,7 +52,7 @@ bb28: ; preds = %bb25, %bb21
%tmp44 = fsub float %tmp43, undef
%tmp45 = fadd float undef, undef
%tmp46 = fdiv float %tmp44, %tmp45
%tmp47 = insertelement <4 x float> undef, float %tmp46, i32 0
%tmp47 = insertelement <4 x float> poison, float %tmp46, i32 0
%tmp48 = shufflevector <4 x float> %tmp47, <4 x float> undef, <4 x i32> zeroinitializer
%tmp49 = fsub <4 x float> %tmp48, %tmp40
%tmp50 = extractelement <4 x float> %tmp41, i32 1
@@ -70,7 +70,7 @@ bb28: ; preds = %bb25, %bb21
; CHECK-NOT: ;DEBUG_VALUE:
call void @llvm.dbg.value(metadata <4 x float> %tmp29, metadata !3, metadata !DIExpression(DW_OP_constu, 1, DW_OP_swap, DW_OP_xderef)) #2, !dbg !5
%tmp59 = bitcast i64 %tmp35 to <2 x float>
%tmp60 = insertelement <2 x float> undef, float %tmp58, i32 0
%tmp60 = insertelement <2 x float> poison, float %tmp58, i32 0
%tmp61 = shufflevector <2 x float> %tmp60, <2 x float> undef, <2 x i32> zeroinitializer
%tmp62 = fmul <2 x float> %tmp61, undef
%tmp63 = fsub <2 x float> %tmp62, %tmp59

View File

@@ -25,7 +25,7 @@ entry:
%tmp1 = load <4 x float>, ptr addrspace(1) %m_angularMotion, align 16
%m_scaleMotion = getelementptr inbounds %struct.ShapeData, ptr addrspace(1) %call, i64 0, i32 4
%tmp2 = load <4 x float>, ptr addrspace(1) %m_scaleMotion, align 16
%splat.splatinsert = insertelement <4 x float> undef, float %time, i32 0
%splat.splatinsert = insertelement <4 x float> poison, float %time, i32 0
%splat.splat = shufflevector <4 x float> %splat.splatinsert, <4 x float> undef, <4 x i32> zeroinitializer
%tmp3 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %tmp2, <4 x float> %splat.splat, <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>)
%tmp4 = load <4 x float>, ptr addrspace(1) %call, align 16
@@ -36,7 +36,7 @@ entry:
%mul = fmul <4 x float> %tmp6, %v
%tmp7 = extractelement <4 x float> %tmp5, i64 0
%sub.i.i = fsub float -0.000000e+00, %tmp7
%vecinit.i.i = insertelement <4 x float> undef, float %sub.i.i, i32 0
%vecinit.i.i = insertelement <4 x float> poison, float %sub.i.i, i32 0
%tmp8 = extractelement <4 x float> %tmp5, i64 1
%sub1.i.i = fsub float -0.000000e+00, %tmp8
%vecinit2.i.i = insertelement <4 x float> %vecinit.i.i, float %sub1.i.i, i32 1
@@ -57,7 +57,7 @@ entry:
%tmp20 = fmul float %tmp8, %tmp16
%tmp21 = fsub float -0.000000e+00, %tmp20
%tmp22 = tail call float @llvm.fmuladd.f32(float %tmp7, float %tmp12, float %tmp21)
%tmp23 = insertelement <4 x float> <float undef, float undef, float undef, float 0.000000e+00>, float %tmp15, i32 0
%tmp23 = insertelement <4 x float> <float poison, float poison, float poison, float 0.000000e+00>, float %tmp15, i32 0
%tmp24 = insertelement <4 x float> %tmp23, float %tmp19, i32 1
%tmp25 = insertelement <4 x float> %tmp24, float %tmp22, i32 2
%tmp26 = extractelement <4 x float> %tmp5, i64 3
@@ -91,7 +91,7 @@ entry:
%tmp49 = fmul float %tmp40, %sub.i.i
%tmp50 = fsub float -0.000000e+00, %tmp49
%tmp51 = tail call float @llvm.fmuladd.f32(float %tmp45, float %sub1.i.i, float %tmp50)
%tmp52 = insertelement <4 x float> <float undef, float undef, float undef, float 0.000000e+00>, float %tmp44, i32 0
%tmp52 = insertelement <4 x float> <float poison, float poison, float poison, float 0.000000e+00>, float %tmp44, i32 0
%tmp53 = insertelement <4 x float> %tmp52, float %tmp48, i32 1
%tmp54 = insertelement <4 x float> %tmp53, float %tmp51, i32 2
%splat.splat.i.i = shufflevector <4 x float> %tmp39, <4 x float> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
@@ -169,7 +169,7 @@ bb98: ; preds = %bb96
bb109: ; preds = %bb98
%tmp110 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp103, i32 516)
%tmp111 = sext i1 %tmp110 to i32
%tmp112 = insertelement <4 x i32> undef, i32 %tmp111, i32 0
%tmp112 = insertelement <4 x i32> poison, i32 %tmp111, i32 0
%tmp113 = tail call zeroext i1 @llvm.amdgcn.class.f32(float %tmp102, i32 516)
%tmp114 = sext i1 %tmp113 to i32
%tmp115 = insertelement <4 x i32> %tmp112, i32 %tmp114, i32 1
@@ -184,7 +184,7 @@ bb109: ; preds = %bb98
%tmp124 = bitcast <4 x i32> %tmp123 to <4 x float>
%tmp125 = extractelement <4 x float> %tmp124, i64 0
%tmp126 = tail call float @llvm.copysign.f32(float %tmp125, float %tmp103)
%tmp127 = insertelement <4 x float> undef, float %tmp126, i32 0
%tmp127 = insertelement <4 x float> poison, float %tmp126, i32 0
%tmp128 = extractelement <4 x float> %tmp124, i64 1
%tmp129 = tail call float @llvm.copysign.f32(float %tmp128, float %tmp102)
%tmp130 = insertelement <4 x float> %tmp127, float %tmp129, i32 1
@@ -204,7 +204,7 @@ bb141: ; preds = %bb109, %bb98, %bb96
%tmp142 = phi <4 x float> [ %tmp87, %bb86 ], [ %tmp136, %bb109 ], [ %tmp99, %bb98 ], [ %vecinit3.i.i, %bb96 ]
%tmp143 = phi float [ %tmp95, %bb86 ], [ %tmp140, %bb109 ], [ %tmp107, %bb98 ], [ %tmp84, %bb96 ]
%tmp144 = tail call float @llvm.amdgcn.rsq.f32(float %tmp143)
%tmp145 = insertelement <4 x float> undef, float %tmp144, i32 0
%tmp145 = insertelement <4 x float> poison, float %tmp144, i32 0
%tmp146 = shufflevector <4 x float> %tmp145, <4 x float> undef, <4 x i32> zeroinitializer
%tmp147 = fmul <4 x float> %tmp142, %tmp146
br label %qtSet.exit
@@ -231,7 +231,7 @@ qtSet.exit: ; preds = %bb141, %entry
%tmp151 = tail call float @llvm.fmuladd.f32(float %tmp150, float 0x3FCCCCCCC0000000, float %tmp149)
%tmp152 = extractelement <4 x float> %tmp148, i64 0
%mul.i = fmul float %tmp151, %tmp152
%tmp153 = insertelement <4 x float> undef, float %mul.i, i64 0
%tmp153 = insertelement <4 x float> poison, float %mul.i, i64 0
%tmp154 = extractelement <4 x float> %tmp148, i64 1
%mul2.i = fmul float %tmp151, %tmp154
%tmp155 = insertelement <4 x float> %tmp153, float %mul2.i, i64 1
@@ -258,7 +258,7 @@ qtSet.exit: ; preds = %bb141, %entry
%tmp160 = tail call float @llvm.fmuladd.f32(float %tmp159, float 0x3FCCCCCCC0000000, float %tmp158)
%tmp161 = insertelement <4 x float> %tmp157, float %tmp160, i64 3
%sub.i.i32 = fsub float -0.000000e+00, %mul.i
%vecinit.i.i33 = insertelement <4 x float> undef, float %sub.i.i32, i32 0
%vecinit.i.i33 = insertelement <4 x float> poison, float %sub.i.i32, i32 0
%sub1.i.i34 = fsub float -0.000000e+00, %mul2.i
%vecinit2.i.i35 = insertelement <4 x float> %vecinit.i.i33, float %sub1.i.i34, i32 1
%sub3.i.i36 = fsub float -0.000000e+00, %mul3.i

View File

@@ -34,9 +34,9 @@ define amdgpu_kernel void @v_abs_i32(ptr addrspace(1) %out, ptr addrspace(1) %sr
; GCN: S_ABS_I32
; GCN: S_ABS_I32
define amdgpu_kernel void @s_abs_v2i32(ptr addrspace(1) %out, <2 x i32> %val) nounwind {
%z0 = insertelement <2 x i32> undef, i32 0, i32 0
%z0 = insertelement <2 x i32> poison, i32 0, i32 0
%z1 = insertelement <2 x i32> %z0, i32 0, i32 1
%t0 = insertelement <2 x i32> undef, i32 2, i32 0
%t0 = insertelement <2 x i32> poison, i32 2, i32 0
%t1 = insertelement <2 x i32> %t0, i32 2, i32 1
%neg = sub <2 x i32> %z1, %val
%cond = icmp sgt <2 x i32> %val, %neg
@@ -52,9 +52,9 @@ define amdgpu_kernel void @s_abs_v2i32(ptr addrspace(1) %out, <2 x i32> %val) no
; GCN: V_MAX_I32_e64
; GCN: V_MAX_I32_e64
define amdgpu_kernel void @v_abs_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %src) nounwind {
%z0 = insertelement <2 x i32> undef, i32 0, i32 0
%z0 = insertelement <2 x i32> poison, i32 0, i32 0
%z1 = insertelement <2 x i32> %z0, i32 0, i32 1
%t0 = insertelement <2 x i32> undef, i32 2, i32 0
%t0 = insertelement <2 x i32> poison, i32 2, i32 0
%t1 = insertelement <2 x i32> %t0, i32 2, i32 1
%tid = call i32 @llvm.amdgcn.workitem.id.x()
%gep.in = getelementptr inbounds <2 x i32>, ptr addrspace(1) %src, i32 %tid

View File

@@ -50,7 +50,7 @@ define amdgpu_kernel void @uniform_vec_0_i16(ptr addrspace(1) %out, i16 %a) {
; GFX11-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
; GFX11-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-NEXT: s_endpgm
%tmp = insertelement <2 x i16> undef, i16 0, i32 0
%tmp = insertelement <2 x i16> poison, i16 0, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %a, i32 1
%val = bitcast <2 x i16> %vec to i32
store i32 %val, ptr addrspace(1) %out, align 4
@@ -81,7 +81,7 @@ define i32 @divergent_vec_0_i16(i16 %a) {
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX11-NEXT: v_lshlrev_b32_e32 v0, 16, v0
; GFX11-NEXT: s_setpc_b64 s[30:31]
%tmp = insertelement <2 x i16> undef, i16 0, i32 0
%tmp = insertelement <2 x i16> poison, i16 0, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %a, i32 1
%val = bitcast <2 x i16> %vec to i32
ret i32 %val
@@ -133,7 +133,7 @@ define amdgpu_kernel void @uniform_vec_i16_0(ptr addrspace(1) %out, i16 %a) {
; GFX11-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
; GFX11-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-NEXT: s_endpgm
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 0, i32 1
%val = bitcast <2 x i16> %vec to i32
store i32 %val, ptr addrspace(1) %out, align 4
@@ -164,7 +164,7 @@ define i32 @divergent_vec_i16_0(i16 %a) {
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX11-NEXT: v_and_b32_e32 v0, 0xffff, v0
; GFX11-NEXT: s_setpc_b64 s[30:31]
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 0, i32 1
%val = bitcast <2 x i16> %vec to i32
ret i32 %val
@@ -216,7 +216,7 @@ define amdgpu_kernel void @uniform_vec_f16_0(ptr addrspace(1) %out, half %a) {
; GFX11-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2
; GFX11-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-NEXT: s_endpgm
%tmp = insertelement <2 x half> undef, half %a, i32 0
%tmp = insertelement <2 x half> poison, half %a, i32 0
%vec = insertelement <2 x half> %tmp, half 0.0, i32 1
%val = bitcast <2 x half> %vec to float
store float %val, ptr addrspace(1) %out, align 4
@@ -247,7 +247,7 @@ define float @divergent_vec_f16_0(half %a) {
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX11-NEXT: v_and_b32_e32 v0, 0xffff, v0
; GFX11-NEXT: s_setpc_b64 s[30:31]
%tmp = insertelement <2 x half> undef, half %a, i32 0
%tmp = insertelement <2 x half> poison, half %a, i32 0
%vec = insertelement <2 x half> %tmp, half 0.0, i32 1
%val = bitcast <2 x half> %vec to float
ret float %val
@@ -311,7 +311,7 @@ define amdgpu_kernel void @uniform_vec_i16_LL(ptr addrspace(4) %in0, ptr addrspa
%val1 = load volatile i32, ptr addrspace(4) %in1
%lo = trunc i32 %val0 to i16
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "s"(i32 %vec.i32) #0
@@ -346,7 +346,7 @@ define i32 @divergent_vec_i16_LL(i16 %a, i16 %b) {
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX11-NEXT: v_perm_b32 v0, v1, v0, 0x5040100
; GFX11-NEXT: s_setpc_b64 s[30:31]
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %b, i32 1
%val = bitcast <2 x i16> %vec to i32
ret i32 %val
@@ -399,7 +399,7 @@ define amdgpu_kernel void @uniform_vec_i16_LH(ptr addrspace(1) %out, i16 %a, i32
; GFX11-NEXT: s_endpgm
%shift = lshr i32 %b, 16
%tr = trunc i32 %shift to i16
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %tr, i32 1
%val = bitcast <2 x i16> %vec to i32
store i32 %val, ptr addrspace(1) %out, align 4
@@ -435,7 +435,7 @@ define i32 @divergent_vec_i16_LH(i16 %a, i32 %b) {
; GFX11-NEXT: s_setpc_b64 s[30:31]
%shift = lshr i32 %b, 16
%tr = trunc i32 %shift to i16
%tmp = insertelement <2 x i16> undef, i16 %a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %tr, i32 1
%val = bitcast <2 x i16> %vec to i32
ret i32 %val
@@ -489,7 +489,7 @@ define amdgpu_kernel void @uniform_vec_i16_HH(ptr addrspace(1) %out, i32 %a, i32
%tr_a = trunc i32 %shift_a to i16
%shift_b = lshr i32 %b, 16
%tr_b = trunc i32 %shift_b to i16
%tmp = insertelement <2 x i16> undef, i16 %tr_a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %tr_a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %tr_b, i32 1
%val = bitcast <2 x i16> %vec to i32
store i32 %val, ptr addrspace(1) %out, align 4
@@ -527,7 +527,7 @@ define i32 @divergent_vec_i16_HH(i32 %a, i32 %b) {
%tr_a = trunc i32 %shift_a to i16
%shift_b = lshr i32 %b, 16
%tr_b = trunc i32 %shift_b to i16
%tmp = insertelement <2 x i16> undef, i16 %tr_a, i32 0
%tmp = insertelement <2 x i16> poison, i16 %tr_a, i32 0
%vec = insertelement <2 x i16> %tmp, i16 %tr_b, i32 1
%val = bitcast <2 x i16> %vec to i32
ret i32 %val
@@ -593,7 +593,7 @@ define amdgpu_kernel void @uniform_vec_f16_LL(ptr addrspace(4) %in0, ptr addrspa
%hi.i = trunc i32 %val1 to i16
%lo = bitcast i16 %lo.i to half
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
@@ -630,7 +630,7 @@ define float @divergent_vec_f16_LL(half %a, half %b) {
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
; GFX11-NEXT: v_perm_b32 v0, v1, v0, 0x5040100
; GFX11-NEXT: s_setpc_b64 s[30:31]
%tmp = insertelement <2 x half> undef, half %a, i32 0
%tmp = insertelement <2 x half> poison, half %a, i32 0
%vec = insertelement <2 x half> %tmp, half %b, i32 1
%val = bitcast <2 x half> %vec to float
ret float %val
@@ -667,7 +667,7 @@ define <2 x i16> @build_vec_v2i16_undeflo_divergent(ptr addrspace(3) %in) #0 {
; GFX11-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build = insertelement <2 x i16> undef, i16 %load, i32 0
%build = insertelement <2 x i16> poison, i16 %load, i32 0
ret <2 x i16> %build
}
@@ -723,7 +723,7 @@ define amdgpu_kernel void @build_vec_v2i16_undeflo_uniform(ptr addrspace(3) %in,
; GFX11-NEXT: s_endpgm
entry:
%load = load i16, ptr addrspace(3) %in
%build = insertelement <2 x i16> undef, i16 %load, i32 0
%build = insertelement <2 x i16> poison, i16 %load, i32 0
%result = bitcast <2 x i16> %build to i32
store i32 %result, ptr addrspace(1) %out
ret void

View File

@@ -15,7 +15,7 @@ define amdgpu_kernel void @ds_combine_nodep(ptr addrspace(1) %out, ptr addrspace
%load0 = load <3 x float>, ptr addrspace(3) %addr0, align 4
%v0 = extractelement <3 x float> %load0, i32 2
%tmp1 = insertelement <2 x float> undef, float 1.0, i32 0
%tmp1 = insertelement <2 x float> poison, float 1.0, i32 0
%data = insertelement <2 x float> %tmp1, float 2.0, i32 1
%tmp2 = getelementptr float, ptr addrspace(3) %inptr, i32 26
@@ -43,7 +43,7 @@ define amdgpu_kernel void @ds_combine_WAR(ptr addrspace(1) %out, ptr addrspace(3
%load0 = load <3 x float>, ptr addrspace(3) %addr0, align 4
%v0 = extractelement <3 x float> %load0, i32 2
%tmp1 = insertelement <2 x float> undef, float 1.0, i32 0
%tmp1 = insertelement <2 x float> poison, float 1.0, i32 0
%data = insertelement <2 x float> %tmp1, float 2.0, i32 1
%tmp2 = getelementptr float, ptr addrspace(3) %inptr, i32 26
@@ -73,7 +73,7 @@ define amdgpu_kernel void @ds_combine_RAW(ptr addrspace(1) %out, ptr addrspace(3
%load0 = load <3 x float>, ptr addrspace(3) %addr0, align 4
%v0 = extractelement <3 x float> %load0, i32 2
%tmp1 = insertelement <2 x float> undef, float 1.0, i32 0
%tmp1 = insertelement <2 x float> poison, float 1.0, i32 0
%data = insertelement <2 x float> %tmp1, float 2.0, i32 1
%tmp2 = getelementptr float, ptr addrspace(3) %inptr, i32 26
@@ -102,7 +102,7 @@ define amdgpu_kernel void @ds_combine_WAR_RAW(ptr addrspace(1) %out, ptr addrspa
%load0 = load <3 x float>, ptr addrspace(3) %addr0, align 4
%v0 = extractelement <3 x float> %load0, i32 2
%tmp1 = insertelement <2 x float> undef, float 1.0, i32 0
%tmp1 = insertelement <2 x float> poison, float 1.0, i32 0
%data = insertelement <2 x float> %tmp1, float 2.0, i32 1
%tmp2 = getelementptr float, ptr addrspace(3) %inptr, i32 26

View File

@@ -331,7 +331,7 @@ define amdgpu_kernel void @read2_ptr_is_subreg_arg_f32(ptr addrspace(1) %out, <2
; GFX9-NEXT: global_store_dword v0, v1, s[0:1]
; GFX9-NEXT: s_endpgm
%x.i = tail call i32 @llvm.amdgcn.workitem.id.x() #1
%index.0 = insertelement <2 x i32> undef, i32 %x.i, i32 0
%index.0 = insertelement <2 x i32> poison, i32 %x.i, i32 0
%index.1 = insertelement <2 x i32> %index.0, i32 8, i32 0
%gep = getelementptr inbounds float, <2 x ptr addrspace(3)> %lds.ptr, <2 x i32> %index.1
%gep.0 = extractelement <2 x ptr addrspace(3)> %gep, i32 0
@@ -382,7 +382,7 @@ define amdgpu_kernel void @read2_ptr_is_subreg_arg_offset_f32(ptr addrspace(1) %
; GFX9-NEXT: global_store_dword v0, v1, s[0:1]
; GFX9-NEXT: s_endpgm
%x.i = tail call i32 @llvm.amdgcn.workitem.id.x() #1
%index.0 = insertelement <2 x i32> undef, i32 %x.i, i32 0
%index.0 = insertelement <2 x i32> poison, i32 %x.i, i32 0
%index.1 = insertelement <2 x i32> %index.0, i32 8, i32 0
%gep = getelementptr inbounds float, <2 x ptr addrspace(3)> %lds.ptr, <2 x i32> %index.1
%gep.0 = extractelement <2 x ptr addrspace(3)> %gep, i32 0
@@ -425,9 +425,9 @@ define amdgpu_kernel void @read2_ptr_is_subreg_f32(ptr addrspace(1) %out) #0 {
; GFX9-NEXT: global_store_dword v2, v0, s[0:1]
; GFX9-NEXT: s_endpgm
%x.i = tail call i32 @llvm.amdgcn.workitem.id.x() #1
%ptr.0 = insertelement <2 x ptr addrspace(3)> undef, ptr addrspace(3) @lds, i32 0
%ptr.0 = insertelement <2 x ptr addrspace(3)> poison, ptr addrspace(3) @lds, i32 0
%ptr.1 = insertelement <2 x ptr addrspace(3)> %ptr.0, ptr addrspace(3) @lds, i32 1
%x.i.v.0 = insertelement <2 x i32> undef, i32 %x.i, i32 0
%x.i.v.0 = insertelement <2 x i32> poison, i32 %x.i, i32 0
%x.i.v.1 = insertelement <2 x i32> %x.i.v.0, i32 %x.i, i32 1
%idx = add <2 x i32> %x.i.v.1, <i32 0, i32 8>
%gep = getelementptr inbounds [512 x float], <2 x ptr addrspace(3)> %ptr.1, <2 x i32> <i32 0, i32 0>, <2 x i32> %idx
@@ -1435,7 +1435,7 @@ define amdgpu_ps <2 x float> @ds_read_interp_read(i32 inreg %prims, ptr addrspac
%ptr1 = getelementptr float, ptr addrspace(3) %inptr, i32 4
%v1 = load float, ptr addrspace(3) %ptr1, align 4
%v1b = fadd float %v1, %intrp
%r0 = insertelement <2 x float> undef, float %v0, i32 0
%r0 = insertelement <2 x float> poison, float %v0, i32 0
%r1 = insertelement <2 x float> %r0, float %v1b, i32 1
ret <2 x float> %r1
}

View File

@@ -161,7 +161,7 @@ define amdgpu_kernel void @simple_read2_v2f32_superreg_scalar_loads_align4(ptr a
%val0 = load float, ptr addrspace(3) %arrayidx0
%val1 = load float, ptr addrspace(3) %arrayidx1
%vec.0 = insertelement <2 x float> undef, float %val0, i32 0
%vec.0 = insertelement <2 x float> poison, float %val0, i32 0
%vec.1 = insertelement <2 x float> %vec.0, float %val1, i32 1
%out.gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %out, i32 %x.i
@@ -188,7 +188,7 @@ define amdgpu_kernel void @simple_read2_v4f32_superreg_scalar_loads_align4(ptr a
%val2 = load float, ptr addrspace(3) %arrayidx2
%val3 = load float, ptr addrspace(3) %arrayidx3
%vec.0 = insertelement <4 x float> undef, float %val0, i32 0
%vec.0 = insertelement <4 x float> poison, float %val0, i32 0
%vec.1 = insertelement <4 x float> %vec.0, float %val1, i32 1
%vec.2 = insertelement <4 x float> %vec.1, float %val2, i32 2
%vec.3 = insertelement <4 x float> %vec.2, float %val3, i32 3

View File

@@ -548,7 +548,7 @@ define amdgpu_kernel void @write2_ptr_subreg_arg_two_val_f32(ptr addrspace(1) %C
%val0 = load float, ptr addrspace(1) %in0.gep, align 4
%val1 = load float, ptr addrspace(1) %in1.gep, align 4
%index.0 = insertelement <2 x i32> undef, i32 %x.i, i32 0
%index.0 = insertelement <2 x i32> poison, i32 %x.i, i32 0
%index.1 = insertelement <2 x i32> %index.0, i32 8, i32 0
%gep = getelementptr inbounds float, <2 x ptr addrspace(3)> %lds.ptr, <2 x i32> %index.1
%gep.0 = extractelement <2 x ptr addrspace(3)> %gep, i32 0

View File

@@ -16,7 +16,7 @@ bb:
%tmp = shufflevector <4 x i8> <i8 1, i8 2, i8 3, i8 4>, <4 x i8> undef, <3 x i32> <i32 0, i32 1, i32 2>
%tmp1 = extractelement <3 x i8> %tmp, i64 0
%tmp2 = zext i8 %tmp1 to i32
%tmp3 = insertelement <3 x i32> undef, i32 %tmp2, i32 0
%tmp3 = insertelement <3 x i32> poison, i32 %tmp2, i32 0
%tmp4 = extractelement <3 x i8> %tmp, i64 1
%tmp5 = zext i8 %tmp4 to i32
%tmp6 = insertelement <3 x i32> %tmp3, i32 %tmp5, i32 1

View File

@@ -22,7 +22,7 @@ define amdgpu_kernel void @store_build_vector_multiple_uses_v4i32(ptr addrspace(
%elt2 = load volatile i32, ptr addrspace(1) %in
%elt3 = load volatile i32, ptr addrspace(1) %in
%vec0 = insertelement <4 x i32> undef, i32 %elt0, i32 0
%vec0 = insertelement <4 x i32> poison, i32 %elt0, i32 0
%vec1 = insertelement <4 x i32> %vec0, i32 %elt1, i32 1
%vec2 = insertelement <4 x i32> %vec1, i32 %elt2, i32 2
%vec3 = insertelement <4 x i32> %vec2, i32 %elt3, i32 3
@@ -64,7 +64,7 @@ define amdgpu_kernel void @store_build_vector_multiple_extract_uses_v4i32(ptr ad
%elt2 = load volatile i32, ptr addrspace(1) %in
%elt3 = load volatile i32, ptr addrspace(1) %in
%vec0 = insertelement <4 x i32> undef, i32 %elt0, i32 0
%vec0 = insertelement <4 x i32> poison, i32 %elt0, i32 0
%vec1 = insertelement <4 x i32> %vec0, i32 %elt1, i32 1
%vec2 = insertelement <4 x i32> %vec1, i32 %elt2, i32 2
%vec3 = insertelement <4 x i32> %vec2, i32 %elt3, i32 3
@@ -108,7 +108,7 @@ define amdgpu_kernel void @store_build_vector_multiple_uses_v4i32_bitcast_to_v2i
%elt2 = load volatile i32, ptr addrspace(1) %in
%elt3 = load volatile i32, ptr addrspace(1) %in
%vec0 = insertelement <4 x i32> undef, i32 %elt0, i32 0
%vec0 = insertelement <4 x i32> poison, i32 %elt0, i32 0
%vec1 = insertelement <4 x i32> %vec0, i32 %elt1, i32 1
%vec2 = insertelement <4 x i32> %vec1, i32 %elt2, i32 2
%vec3 = insertelement <4 x i32> %vec2, i32 %elt3, i32 3

View File

@@ -740,7 +740,7 @@ define <2 x half> @v_test_canonicalize_build_vector_v2f16(<2 x half> %vec) {
%hi = extractelement <2 x half> %vec, i32 1
%lo.op = fadd half %lo, 1.0
%hi.op = fmul half %lo, 4.0
%ins0 = insertelement <2 x half> undef, half %lo.op, i32 0
%ins0 = insertelement <2 x half> poison, half %lo.op, i32 0
%ins1 = insertelement <2 x half> %ins0, half %hi.op, i32 1
%canonicalized = call <2 x half> @llvm.canonicalize.v2f16(<2 x half> %ins1)
ret <2 x half> %canonicalized

View File

@@ -32,7 +32,7 @@ define void @global_inst_offset(ptr addrspace(1) nocapture %p) {
define amdgpu_kernel void @load_i16_lo(ptr %arg, ptr %out) {
%gep = getelementptr inbounds i16, ptr %arg, i32 4
%ld = load i16, ptr %gep, align 2
%vec = insertelement <2 x i16> <i16 undef, i16 0>, i16 %ld, i32 0
%vec = insertelement <2 x i16> <i16 poison, i16 0>, i16 %ld, i32 0
%v = add <2 x i16> %vec, %vec
store <2 x i16> %v, ptr %out, align 4
ret void
@@ -44,7 +44,7 @@ define amdgpu_kernel void @load_i16_lo(ptr %arg, ptr %out) {
define amdgpu_kernel void @load_i16_hi(ptr %arg, ptr %out) {
%gep = getelementptr inbounds i16, ptr %arg, i32 4
%ld = load i16, ptr %gep, align 2
%vec = insertelement <2 x i16> <i16 0, i16 undef>, i16 %ld, i32 1
%vec = insertelement <2 x i16> <i16 0, i16 poison>, i16 %ld, i32 1
%v = add <2 x i16> %vec, %vec
store <2 x i16> %v, ptr %out, align 4
ret void
@@ -56,7 +56,7 @@ define amdgpu_kernel void @load_i16_hi(ptr %arg, ptr %out) {
define amdgpu_kernel void @load_half_lo(ptr %arg, ptr %out) {
%gep = getelementptr inbounds half, ptr %arg, i32 4
%ld = load half, ptr %gep, align 2
%vec = insertelement <2 x half> <half undef, half 0xH0000>, half %ld, i32 0
%vec = insertelement <2 x half> <half poison, half 0xH0000>, half %ld, i32 0
%v = fadd <2 x half> %vec, %vec
store <2 x half> %v, ptr %out, align 4
ret void
@@ -68,7 +68,7 @@ define amdgpu_kernel void @load_half_lo(ptr %arg, ptr %out) {
define amdgpu_kernel void @load_half_hi(ptr %arg, ptr %out) {
%gep = getelementptr inbounds half, ptr %arg, i32 4
%ld = load half, ptr %gep, align 2
%vec = insertelement <2 x half> <half 0xH0000, half undef>, half %ld, i32 1
%vec = insertelement <2 x half> <half 0xH0000, half poison>, half %ld, i32 1
%v = fadd <2 x half> %vec, %vec
store <2 x half> %v, ptr %out, align 4
ret void

View File

@@ -4,7 +4,7 @@
define amdgpu_ps void @test(<4 x float> inreg %reg0) {
%r0 = extractelement <4 x float> %reg0, i32 0
%r1 = call float @floorf(float %r0)
%vec = insertelement <4 x float> undef, float %r1, i32 0
%vec = insertelement <4 x float> poison, float %r1, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -38,7 +38,7 @@ bb14: ; preds = %bb14, %bb11
%tmp24 = getelementptr inbounds float, ptr addrspace(4) %arg1, i64 %tmp23
%tmp25 = load float, ptr addrspace(4) %tmp24, align 4
%tmp26 = fptrunc float %tmp25 to half
%tmp27 = insertelement <4 x half> undef, half %tmp26, i32 0
%tmp27 = insertelement <4 x half> poison, half %tmp26, i32 0
%tmp28 = shufflevector <4 x half> %tmp27, <4 x half> undef, <4 x i32> zeroinitializer
%vec.A.0 = extractelement <4 x half> %tmp21, i32 0
%vec.B.0 = extractelement <4 x half> %tmp28, i32 0
@@ -56,7 +56,7 @@ bb14: ; preds = %bb14, %bb11
%vec.B.3 = extractelement <4 x half> %tmp28, i32 3
%vec.C.3 = extractelement <4 x half> %tmp15, i32 3
%vec.res.3 = tail call half @llvm.fmuladd.f16(half %vec.A.3, half %vec.B.3, half %vec.C.3)
%full.res.0 = insertelement <4 x half> undef, half %vec.res.0, i32 0
%full.res.0 = insertelement <4 x half> poison, half %vec.res.0, i32 0
%full.res.1 = insertelement <4 x half> %full.res.0, half %vec.res.1, i32 1
%full.res.2 = insertelement <4 x half> %full.res.1, half %vec.res.2, i32 2
%tmp29 = insertelement <4 x half> %full.res.2, half %vec.res.3, i32 3
@@ -80,7 +80,7 @@ define linkonce_odr hidden <4 x half> @_Z13convert_half4Dv4_h(<4 x i8> %arg) loc
bb:
%tmp = extractelement <4 x i8> %arg, i64 0
%tmp1 = uitofp i8 %tmp to half
%tmp2 = insertelement <4 x half> undef, half %tmp1, i32 0
%tmp2 = insertelement <4 x half> poison, half %tmp1, i32 0
%tmp3 = extractelement <4 x i8> %arg, i64 1
%tmp4 = uitofp i8 %tmp3 to half
%tmp5 = insertelement <4 x half> %tmp2, half %tmp4, i32 1

View File

@@ -236,7 +236,7 @@ define <2 x float> @unsafe_fast_fmul_fadd_distribute_post_legalize_f32(float %ar
; FMADGFX10-NEXT: v_mad_f32 v0, v0, v1, v1
; FMADGFX10-NEXT: s_setpc_b64 s[30:31]
%add = fadd fast float %arg0, 1.0
%splat = insertelement <2 x float> undef, float %add, i32 0
%splat = insertelement <2 x float> poison, float %add, i32 0
%tmp1 = fmul fast <2 x float> %arg1, %splat
ret <2 x float> %tmp1
}
@@ -279,7 +279,7 @@ define <2 x float> @unsafe_fast_fmul_fsub_ditribute_post_legalize(float %arg0, <
; FMADGFX10-NEXT: v_mad_f32 v0, -v0, v1, v1
; FMADGFX10-NEXT: s_setpc_b64 s[30:31]
%sub = fsub fast float 1.0, %arg0
%splat = insertelement <2 x float> undef, float %sub, i32 0
%splat = insertelement <2 x float> poison, float %sub, i32 0
%tmp1 = fmul fast <2 x float> %arg1, %splat
ret <2 x float> %tmp1
}

View File

@@ -8,7 +8,7 @@ define amdgpu_ps void @test(<4 x float> inreg %reg0) {
%r2 = extractelement <4 x float> %reg0, i32 2
%r3 = fmul float %r0, %r1
%r4 = fadd float %r3, %r2
%vec = insertelement <4 x float> undef, float %r4, i32 0
%vec = insertelement <4 x float> poison, float %r4, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -7,7 +7,7 @@ define amdgpu_ps void @test(<4 x float> inreg %reg0) {
%r1 = extractelement <4 x float> %reg0, i32 1
%r2 = fcmp oge float %r0, %r1
%r3 = select i1 %r2, float %r0, float %r1
%vec = insertelement <4 x float> undef, float %r3, i32 0
%vec = insertelement <4 x float> poison, float %r3, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -7,7 +7,7 @@ define amdgpu_ps void @test(<4 x float> inreg %reg0) {
%r1 = extractelement <4 x float> %reg0, i32 1
%r2 = fcmp uge float %r0, %r1
%r3 = select i1 %r2, float %r1, float %r0
%vec = insertelement <4 x float> undef, float %r3, i32 0
%vec = insertelement <4 x float> poison, float %r3, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -1466,7 +1466,7 @@ define <2 x half> @v_fneg_minnum_multi_use_minnum_f16_no_ieee(half %a, half %b)
%min = call half @llvm.minnum.f16(half %a, half %b)
%fneg = fneg half %min
%use1 = fmul half %min, 4.0
%ins0 = insertelement <2 x half> undef, half %fneg, i32 0
%ins0 = insertelement <2 x half> poison, half %fneg, i32 0
%ins1 = insertelement <2 x half> %ins0, half %use1, i32 1
ret <2 x half> %ins1
}
@@ -1904,7 +1904,7 @@ define <2 x half> @v_fneg_maxnum_multi_use_maxnum_f16_no_ieee(half %a, half %b)
%max = call half @llvm.maxnum.f16(half %a, half %b)
%fneg = fneg half %max
%use1 = fmul half %max, 4.0
%ins0 = insertelement <2 x half> undef, half %fneg, i32 0
%ins0 = insertelement <2 x half> poison, half %fneg, i32 0
%ins1 = insertelement <2 x half> %ins0, half %use1, i32 1
ret <2 x half> %ins1
}

View File

@@ -853,7 +853,7 @@ define amdgpu_ps <2 x float> @v_fneg_minnum_multi_use_minnum_f32_no_ieee(float %
%min = call float @llvm.minnum.f32(float %a, float %b)
%fneg = fneg float %min
%use1 = fmul float %min, 4.0
%ins0 = insertelement <2 x float> undef, float %fneg, i32 0
%ins0 = insertelement <2 x float> poison, float %fneg, i32 0
%ins1 = insertelement <2 x float> %ins0, float %use1, i32 1
ret <2 x float> %ins1
}
@@ -1093,7 +1093,7 @@ define amdgpu_ps <2 x float> @v_fneg_maxnum_multi_use_maxnum_f32_no_ieee(float %
%max = call float @llvm.maxnum.f32(float %a, float %b)
%fneg = fneg float %max
%use1 = fmul float %max, 4.0
%ins0 = insertelement <2 x float> undef, float %fneg, i32 0
%ins0 = insertelement <2 x float> poison, float %fneg, i32 0
%ins1 = insertelement <2 x float> %ins0, float %use1, i32 1
ret <2 x float> %ins1
}

View File

@@ -1186,7 +1186,7 @@ define <2 x float> @v_fneg_minnum_multi_use_minnum_f32_no_ieee(float %a, float %
%min = call float @llvm.minnum.f32(float %a, float %b)
%fneg = fneg float %min
%use1 = fmul float %min, 4.0
%ins0 = insertelement <2 x float> undef, float %fneg, i32 0
%ins0 = insertelement <2 x float> poison, float %fneg, i32 0
%ins1 = insertelement <2 x float> %ins0, float %use1, i32 1
ret <2 x float> %ins1
}
@@ -1376,7 +1376,7 @@ define <2 x float> @v_fneg_maxnum_multi_use_maxnum_f32_no_ieee(float %a, float %
%max = call float @llvm.maxnum.f32(float %a, float %b)
%fneg = fneg float %max
%use1 = fmul float %max, 4.0
%ins0 = insertelement <2 x float> undef, float %fneg, i32 0
%ins0 = insertelement <2 x float> poison, float %fneg, i32 0
%ins1 = insertelement <2 x float> %ins0, float %use1, i32 1
ret <2 x float> %ins1
}

View File

@@ -254,7 +254,7 @@ declare void @func(ptr addrspace(5) nocapture) #0
define void @undefined_stack_store_reg(float %arg, i32 %arg1) #0 {
bb:
%tmp = alloca <4 x float>, align 16, addrspace(5)
%tmp2 = insertelement <4 x float> undef, float %arg, i32 0
%tmp2 = insertelement <4 x float> poison, float %arg, i32 0
store <4 x float> %tmp2, ptr addrspace(5) undef
%tmp3 = icmp eq i32 %arg1, 0
br i1 %tmp3, label %bb4, label %bb5

View File

@@ -2207,7 +2207,7 @@ define { <3 x i32>, i32 } @v3i32_struct_func_void_wasted_reg() #0 {
%load2 = load volatile i32, ptr addrspace(3) undef
%load3 = load volatile i32, ptr addrspace(3) undef
%insert.0 = insertelement <3 x i32> undef, i32 %load0, i32 0
%insert.0 = insertelement <3 x i32> poison, i32 %load0, i32 0
%insert.1 = insertelement <3 x i32> %insert.0, i32 %load1, i32 1
%insert.2 = insertelement <3 x i32> %insert.1, i32 %load2, i32 2
%insert.3 = insertvalue { <3 x i32>, i32 } poison, <3 x i32> %insert.2, 0
@@ -2266,7 +2266,7 @@ define { <3 x float>, i32 } @v3f32_struct_func_void_wasted_reg() #0 {
%load2 = load volatile float, ptr addrspace(3) undef
%load3 = load volatile i32, ptr addrspace(3) undef
%insert.0 = insertelement <3 x float> undef, float %load0, i32 0
%insert.0 = insertelement <3 x float> poison, float %load0, i32 0
%insert.1 = insertelement <3 x float> %insert.0, float %load1, i32 1
%insert.2 = insertelement <3 x float> %insert.1, float %load2, i32 2
%insert.3 = insertvalue { <3 x float>, i32 } poison, <3 x float> %insert.2, 0

View File

@@ -85,7 +85,7 @@ bb3: ; preds = %bb3, %bb
%i4 = zext i32 %i to i64
%i5 = getelementptr inbounds i16, ptr addrspace(1) %arg, i64 %i4
%i6 = load volatile i16, ptr addrspace(1) %i5, align 4
%insertelt = insertelement <2 x i16> undef, i16 %i6, i32 1
%insertelt = insertelement <2 x i16> poison, i16 %i6, i32 1
%i8 = bitcast <2 x i16> %insertelt to i32
%i9 = icmp eq i32 %i8, 256
br i1 %i9, label %bb2, label %bb3

View File

@@ -3849,7 +3849,7 @@ define amdgpu_ps <2 x half> @global_load_saddr_i16_d16lo_undef_hi(ptr addrspace(
%zext.offset = zext i32 %voffset to i64
%gep0 = getelementptr inbounds i8, ptr addrspace(1) %sbase, i64 %zext.offset
%load = load i16, ptr addrspace(1) %gep0
%build = insertelement <2 x i16> undef, i16 %load, i32 0
%build = insertelement <2 x i16> poison, i16 %load, i32 0
%cast = bitcast <2 x i16> %build to <2 x half>
ret <2 x half> %cast
}
@@ -3882,7 +3882,7 @@ define amdgpu_ps <2 x half> @global_load_saddr_i16_d16lo_undef_hi_immneg128(ptr
%gep0 = getelementptr inbounds i8, ptr addrspace(1) %sbase, i64 %zext.offset
%gep1 = getelementptr inbounds i8, ptr addrspace(1) %gep0, i64 -128
%load = load i16, ptr addrspace(1) %gep1
%build = insertelement <2 x i16> undef, i16 %load, i32 0
%build = insertelement <2 x i16> poison, i16 %load, i32 0
%cast = bitcast <2 x i16> %build to <2 x half>
ret <2 x half> %cast
}
@@ -4225,7 +4225,7 @@ define amdgpu_ps <2 x half> @global_load_saddr_i16_d16hi_undef_hi(ptr addrspace(
%zext.offset = zext i32 %voffset to i64
%gep0 = getelementptr inbounds i8, ptr addrspace(1) %sbase, i64 %zext.offset
%load = load i16, ptr addrspace(1) %gep0
%build = insertelement <2 x i16> undef, i16 %load, i32 1
%build = insertelement <2 x i16> poison, i16 %load, i32 1
%cast = bitcast <2 x i16> %build to <2 x half>
ret <2 x half> %cast
}
@@ -4259,7 +4259,7 @@ define amdgpu_ps <2 x half> @global_load_saddr_i16_d16hi_undef_hi_immneg128(ptr
%gep0 = getelementptr inbounds i8, ptr addrspace(1) %sbase, i64 %zext.offset
%gep1 = getelementptr inbounds i8, ptr addrspace(1) %gep0, i64 -128
%load = load i16, ptr addrspace(1) %gep1
%build = insertelement <2 x i16> undef, i16 %load, i32 1
%build = insertelement <2 x i16> poison, i16 %load, i32 1
%cast = bitcast <2 x i16> %build to <2 x half>
ret <2 x half> %cast
}

View File

@@ -14,7 +14,7 @@ define dllexport amdgpu_cs void @_amdgpu_cs_main(i32 inreg %arg, i32 inreg %arg1
.entry:
%tmp = call i64 @llvm.amdgcn.s.getpc() #1
%tmp6 = bitcast i64 %tmp to <2 x i32>
%.0.vec.insert = insertelement <2 x i32> undef, i32 %arg2, i32 0
%.0.vec.insert = insertelement <2 x i32> poison, i32 %arg2, i32 0
%.4.vec.insert = shufflevector <2 x i32> %.0.vec.insert, <2 x i32> %tmp6, <2 x i32> <i32 0, i32 3>
%tmp7 = bitcast <2 x i32> %.4.vec.insert to i64
%tmp8 = inttoptr i64 %tmp7 to ptr addrspace(4)

View File

@@ -1880,7 +1880,7 @@ define amdgpu_kernel void @insert_undef_offset_sgpr_vector_src(ptr addrspace(1)
; GFX9-IDXMODE-NEXT: s_endpgm
entry:
%ld = load <4 x i32>, ptr addrspace(1) %in
%value = insertelement <4 x i32> %ld, i32 5, i32 undef
%value = insertelement <4 x i32> %ld, i32 5, i32 poison
store <4 x i32> %value, ptr addrspace(1) %out
ret void
}
@@ -7699,13 +7699,13 @@ bb:
bb1:
%tmp2 = load volatile <4 x float>, ptr addrspace(1) undef
%tmp3 = insertelement <4 x float> %tmp2, float %val0, i32 undef
%tmp3 = insertelement <4 x float> %tmp2, float %val0, i32 poison
call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp3) ; Prevent block optimize out
br label %bb7
bb4:
%tmp5 = load volatile <4 x float>, ptr addrspace(1) undef
%tmp6 = insertelement <4 x float> %tmp5, float %val0, i32 undef
%tmp6 = insertelement <4 x float> %tmp5, float %val0, i32 poison
call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp6) ; Prevent block optimize out
br label %bb7
@@ -9459,7 +9459,7 @@ bb2:
bb4:
%vgpr = load volatile i32, ptr addrspace(1) undef
%tmp5 = insertelement <16 x i32> undef, i32 undef, i32 %vgpr
%tmp5 = insertelement <16 x i32> poison, i32 poison, i32 %vgpr
%tmp6 = insertelement <16 x i32> %tmp5, i32 %arg1, i32 %vgpr
%tmp7 = extractelement <16 x i32> %tmp6, i32 0
br label %bb2

View File

@@ -43,7 +43,7 @@ define amdgpu_ps void @test(<4 x float> inreg %reg0) {
%r1 = call float @llvm.fabs.f32(float %r0)
%r2 = fsub float -0.000000e+00, %r1
%r3 = call afn float @llvm.exp2.f32(float %r2)
%vec = insertelement <4 x float> undef, float %r3, i32 0
%vec = insertelement <4 x float> poison, float %r3, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -48,7 +48,7 @@ define amdgpu_kernel void @float4_inselt_undef(ptr addrspace(1) %out, i32 %sel)
; GCN-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
; GCN-NEXT: s_endpgm
entry:
%v = insertelement <4 x float> undef, float 1.000000e+00, i32 %sel
%v = insertelement <4 x float> poison, float 1.000000e+00, i32 %sel
store <4 x float> %v, ptr addrspace(1) %out
ret void
}

View File

@@ -2016,7 +2016,7 @@ define amdgpu_kernel void @insert_split_bb(ptr addrspace(1) %out, ptr addrspace(
; VI-NEXT: .LBB42_4:
; VI-NEXT: s_branch .LBB42_2
entry:
%0 = insertelement <2 x i32> undef, i32 %a, i32 0
%0 = insertelement <2 x i32> poison, i32 %a, i32 0
%1 = icmp eq i32 %a, 0
br i1 %1, label %if, label %else

View File

@@ -32,7 +32,7 @@ ENDIF: ; preds = %IF13, %ELSE, %main_
%temp1.0 = phi float [ 0.000000e+00, %main_body ], [ %23, %IF13 ], [ 0.000000e+00, %ELSE ]
%temp2.0 = phi float [ 1.000000e+00, %main_body ], [ 0.000000e+00, %ELSE ], [ 0.000000e+00, %IF13 ]
%temp3.0 = phi float [ 5.000000e-01, %main_body ], [ 0.000000e+00, %ELSE ], [ 0.000000e+00, %IF13 ]
%16 = insertelement <4 x float> undef, float %temp.0, i32 0
%16 = insertelement <4 x float> poison, float %temp.0, i32 0
%17 = insertelement <4 x float> %16, float %temp1.0, i32 1
%18 = insertelement <4 x float> %17, float %temp2.0, i32 2
%19 = insertelement <4 x float> %18, float %temp3.0, i32 3

View File

@@ -44,7 +44,7 @@ main_body:
%clamp.i4 = call float @llvm.minnum.f32(float %max.0.i3, float 1.000000e+00)
%max.0.i1 = call float @llvm.maxnum.f32(float %tmp37, float 0.000000e+00)
%clamp.i2 = call float @llvm.minnum.f32(float %max.0.i1, float 1.000000e+00)
%tmp38 = insertelement <4 x float> undef, float %clamp.i, i32 0
%tmp38 = insertelement <4 x float> poison, float %clamp.i, i32 0
%tmp39 = insertelement <4 x float> %tmp38, float %clamp.i6, i32 1
%tmp40 = insertelement <4 x float> %tmp39, float %clamp.i4, i32 2
%tmp41 = insertelement <4 x float> %tmp40, float %clamp.i2, i32 3
@@ -96,7 +96,7 @@ main_body:
%clamp.i4 = call float @llvm.minnum.f32(float %max.0.i3, float 1.000000e+00)
%max.0.i1 = call float @llvm.maxnum.f32(float %tmp37, float 0.000000e+00)
%clamp.i2 = call float @llvm.minnum.f32(float %max.0.i1, float 1.000000e+00)
%tmp38 = insertelement <4 x float> undef, float %clamp.i, i32 0
%tmp38 = insertelement <4 x float> poison, float %clamp.i, i32 0
%tmp39 = insertelement <4 x float> %tmp38, float %clamp.i6, i32 1
%tmp40 = insertelement <4 x float> %tmp39, float %clamp.i4, i32 2
%tmp41 = insertelement <4 x float> %tmp40, float %clamp.i2, i32 3

View File

@@ -24,7 +24,7 @@ entry:
%v.0 = load i32, ptr addrspace(3) %ptr, align 8
%v.1 = load i32, ptr addrspace(3) %ptr.gep.1
%r.0 = insertelement <2 x i32> undef, i32 %v.0, i32 0
%r.0 = insertelement <2 x i32> poison, i32 %v.0, i32 0
%r.1 = insertelement <2 x i32> %r.0, i32 %v.1, i32 1
%bc = bitcast <2 x i32> %r.1 to <2 x float>
ret <2 x float> %bc
@@ -54,7 +54,7 @@ entry:
%v.0 = load i32, ptr addrspace(3) %ptr.a
%v.1 = load i32, ptr addrspace(3) %ptr.b
%r.0 = insertelement <2 x i32> undef, i32 %v.0, i32 0
%r.0 = insertelement <2 x i32> poison, i32 %v.0, i32 0
%r.1 = insertelement <2 x i32> %r.0, i32 %v.1, i32 1
%bc = bitcast <2 x i32> %r.1 to <2 x float>
ret <2 x float> %bc
@@ -88,7 +88,7 @@ entry:
%v.0 = load i32, ptr addrspace(3) %ptr.a
%v.1 = load i32, ptr addrspace(3) %ptr.b
%r.0 = insertelement <2 x i32> undef, i32 %v.0, i32 0
%r.0 = insertelement <2 x i32> poison, i32 %v.0, i32 0
%r.1 = insertelement <2 x i32> %r.0, i32 %v.1, i32 1
%bc = bitcast <2 x i32> %r.1 to <2 x float>
ret <2 x float> %bc
@@ -120,7 +120,7 @@ entry:
%v.0 = load i32, ptr addrspace(3) %ptr.a
%v.1 = load i32, ptr addrspace(3) %ptr.b
%r.0 = insertelement <2 x i32> undef, i32 %v.0, i32 0
%r.0 = insertelement <2 x i32> poison, i32 %v.0, i32 0
%r.1 = insertelement <2 x i32> %r.0, i32 %v.1, i32 1
%bc = bitcast <2 x i32> %r.1 to <2 x float>
ret <2 x float> %bc

View File

@@ -32,7 +32,7 @@ main_body:
%val.0 = load float, ptr addrspace(3) %gep.0, align 4
call void @llvm.amdgcn.wave.barrier()
%val.1 = load float, ptr addrspace(3) %gep.1, align 4
%tmp.0 = insertelement <2 x float> undef, float %val.0, i32 0
%tmp.0 = insertelement <2 x float> poison, float %val.0, i32 0
%res = insertelement <2 x float> %tmp.0, float %val.1, i32 1
store <2 x float> %res, ptr addrspace(1) %out
ret void
@@ -60,7 +60,7 @@ main_body:
%val.0 = load float, ptr addrspace(3) %gep.0, align 4
call void @llvm.amdgcn.wave.barrier()
%val.1 = load float, ptr addrspace(3) %gep.1, align 4
%tmp.0 = insertelement <2 x float> undef, float %val.0, i32 0
%tmp.0 = insertelement <2 x float> poison, float %val.0, i32 0
%res = insertelement <2 x float> %tmp.0, float %val.1, i32 1
store <2 x float> %res, ptr addrspace(1) %out
ret void

View File

@@ -18,7 +18,7 @@ bb:
%load = load <2 x i32>, ptr addrspace(3) %gep, align 4
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr addrspace(3) %gep, align 4
ret void
@@ -38,7 +38,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3
@@ -59,7 +59,7 @@ bb:
%v1 = extractelement <3 x i32> %load, i32 0
%v2 = extractelement <3 x i32> %load, i32 1
%v3 = extractelement <3 x i32> %load, i32 2
%v5 = insertelement <3 x i32> undef, i32 %v3, i32 0
%v5 = insertelement <3 x i32> poison, i32 %v3, i32 0
%v6 = insertelement <3 x i32> %v5, i32 %v1, i32 1
%v7 = insertelement <3 x i32> %v6, i32 %v2, i32 2
store <3 x i32> %v7, ptr addrspace(3) %gep, align 4
@@ -80,7 +80,7 @@ bb:
%load = load <2 x i32>, ptr %gep, align 4
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr %gep, align 4
ret void
@@ -106,7 +106,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3
@@ -131,7 +131,7 @@ bb:
%v1 = extractelement <3 x i32> %load, i32 0
%v2 = extractelement <3 x i32> %load, i32 1
%v3 = extractelement <3 x i32> %load, i32 2
%v5 = insertelement <3 x i32> undef, i32 %v3, i32 0
%v5 = insertelement <3 x i32> poison, i32 %v3, i32 0
%v6 = insertelement <3 x i32> %v5, i32 %v1, i32 1
%v7 = insertelement <3 x i32> %v6, i32 %v2, i32 2
store <3 x i32> %v7, ptr %gep, align 4
@@ -148,7 +148,7 @@ bb:
%load = load <2 x i32>, ptr addrspace(3) %gep, align 8
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr addrspace(3) %gep, align 8
ret void
@@ -165,7 +165,7 @@ bb:
%v1 = extractelement <3 x i32> %load, i32 0
%v2 = extractelement <3 x i32> %load, i32 1
%v3 = extractelement <3 x i32> %load, i32 2
%v5 = insertelement <3 x i32> undef, i32 %v3, i32 0
%v5 = insertelement <3 x i32> poison, i32 %v3, i32 0
%v6 = insertelement <3 x i32> %v5, i32 %v1, i32 1
%v7 = insertelement <3 x i32> %v6, i32 %v2, i32 2
store <3 x i32> %v7, ptr addrspace(3) %gep, align 16
@@ -182,7 +182,7 @@ bb:
%load = load <2 x i32>, ptr %gep, align 8
%v1 = extractelement <2 x i32> %load, i32 0
%v2 = extractelement <2 x i32> %load, i32 1
%v3 = insertelement <2 x i32> undef, i32 %v2, i32 0
%v3 = insertelement <2 x i32> poison, i32 %v2, i32 0
%v4 = insertelement <2 x i32> %v3, i32 %v1, i32 1
store <2 x i32> %v4, ptr %gep, align 8
ret void
@@ -200,7 +200,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3
@@ -222,7 +222,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3
@@ -246,7 +246,7 @@ bb:
%v2 = extractelement <4 x i32> %load, i32 1
%v3 = extractelement <4 x i32> %load, i32 2
%v4 = extractelement <4 x i32> %load, i32 3
%v5 = insertelement <4 x i32> undef, i32 %v4, i32 0
%v5 = insertelement <4 x i32> poison, i32 %v4, i32 0
%v6 = insertelement <4 x i32> %v5, i32 %v3, i32 1
%v7 = insertelement <4 x i32> %v6, i32 %v2, i32 2
%v8 = insertelement <4 x i32> %v7, i32 %v1, i32 3

View File

@@ -54,7 +54,7 @@ define amdgpu_ps <2 x float> @sample_contig_nsa(<8 x i32> inreg %rsrc, <4 x i32>
main_body:
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare, float %s1, float %t1, float %r1, float %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2, float %t2, float %r2, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -70,7 +70,7 @@ define amdgpu_ps <2 x float> @sample_nsa_nsa(<8 x i32> inreg %rsrc, <4 x i32> in
main_body:
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare, float %s1, float %t1, float %r1, float %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2, float %t2, float %r2, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -86,7 +86,7 @@ define amdgpu_ps <2 x float> @sample_nsa_contig(<8 x i32> inreg %rsrc, <4 x i32>
main_body:
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare, float %s1, float %t1, float %r1, float %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2, float %t2, float %r2, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -106,7 +106,7 @@ define amdgpu_ps <2 x float> @sample_contig_contig(<8 x i32> inreg %rsrc, <4 x i
main_body:
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare, float %s1, float %t1, float %r1, float %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2, float %t2, float %r2, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}

View File

@@ -259,7 +259,7 @@ main_body:
%tex.vec = extractvalue {<2 x half>, i32} %tex, 0
%tex.err = extractvalue {<2 x half>, i32} %tex, 1
%tex.vecf = bitcast <2 x half> %tex.vec to float
%r.0 = insertelement <2 x float> undef, float %tex.vecf, i32 0
%r.0 = insertelement <2 x float> poison, float %tex.vecf, i32 0
%tex.errf = bitcast i32 %tex.err to float
%r = insertelement <2 x float> %r.0, float %tex.errf, i32 1
ret <2 x float> %r
@@ -415,7 +415,7 @@ main_body:
%tex.vecf = bitcast <4 x half> %tex.vec_wide to <2 x float>
%tex.vecf.0 = extractelement <2 x float> %tex.vecf, i32 0
%tex.vecf.1 = extractelement <2 x float> %tex.vecf, i32 1
%r.0 = insertelement <4 x float> undef, float %tex.vecf.0, i32 0
%r.0 = insertelement <4 x float> poison, float %tex.vecf.0, i32 0
%r.1 = insertelement <4 x float> %r.0, float %tex.vecf.1, i32 1
%tex.errf = bitcast i32 %tex.err to float
%r = insertelement <4 x float> %r.1, float %tex.errf, i32 2
@@ -571,7 +571,7 @@ main_body:
%tex.vecf = bitcast <4 x half> %tex.vec to <2 x float>
%tex.vecf.0 = extractelement <2 x float> %tex.vecf, i32 0
%tex.vecf.1 = extractelement <2 x float> %tex.vecf, i32 1
%r.0 = insertelement <4 x float> undef, float %tex.vecf.0, i32 0
%r.0 = insertelement <4 x float> poison, float %tex.vecf.0, i32 0
%r.1 = insertelement <4 x float> %r.0, float %tex.vecf.1, i32 1
%tex.errf = bitcast i32 %tex.err to float
%r = insertelement <4 x float> %r.1, float %tex.errf, i32 2

View File

@@ -207,7 +207,7 @@ main_body:
%res.f = extractelement <4 x float> %res.vec, i32 0
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp = insertelement <2 x float> undef, float %res.f, i32 0
%res.tmp = insertelement <2 x float> poison, float %res.f, i32 0
%res = insertelement <2 x float> %res.tmp, float %res.errf, i32 1
ret <2 x float> %res
}
@@ -266,7 +266,7 @@ main_body:
%res.f = extractelement <4 x float> %res.vec, i32 1
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp = insertelement <2 x float> undef, float %res.f, i32 0
%res.tmp = insertelement <2 x float> poison, float %res.f, i32 0
%res = insertelement <2 x float> %res.tmp, float %res.errf, i32 1
ret <2 x float> %res
}
@@ -325,7 +325,7 @@ main_body:
%res.f = extractelement <4 x float> %res.vec, i32 2
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp = insertelement <2 x float> undef, float %res.f, i32 0
%res.tmp = insertelement <2 x float> poison, float %res.f, i32 0
%res = insertelement <2 x float> %res.tmp, float %res.errf, i32 1
ret <2 x float> %res
}
@@ -384,7 +384,7 @@ main_body:
%res.f = extractelement <4 x float> %res.vec, i32 3
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp = insertelement <2 x float> undef, float %res.f, i32 0
%res.tmp = insertelement <2 x float> poison, float %res.f, i32 0
%res = insertelement <2 x float> %res.tmp, float %res.errf, i32 1
ret <2 x float> %res
}
@@ -458,7 +458,7 @@ main_body:
%res.f2 = extractelement <4 x float> %res.vec, i32 1
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp1 = insertelement <4 x float> undef, float %res.f1, i32 0
%res.tmp1 = insertelement <4 x float> poison, float %res.f1, i32 0
%res.tmp2 = insertelement <4 x float> %res.tmp1, float %res.f2, i32 1
%res = insertelement <4 x float> %res.tmp2, float %res.errf, i32 2
ret <4 x float> %res
@@ -533,7 +533,7 @@ main_body:
%res.f2 = extractelement <4 x float> %res.vec, i32 3
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp1 = insertelement <4 x float> undef, float %res.f1, i32 0
%res.tmp1 = insertelement <4 x float> poison, float %res.f1, i32 0
%res.tmp2 = insertelement <4 x float> %res.tmp1, float %res.f2, i32 1
%res = insertelement <4 x float> %res.tmp2, float %res.errf, i32 2
ret <4 x float> %res
@@ -602,7 +602,7 @@ main_body:
%res.f3 = extractelement <4 x float> %res.vec, i32 3
%res.err = extractvalue {<4 x float>,i32} %v, 1
%res.errf = bitcast i32 %res.err to float
%res.tmp1 = insertelement <4 x float> undef, float %res.f1, i32 0
%res.tmp1 = insertelement <4 x float> poison, float %res.f1, i32 0
%res.tmp2 = insertelement <4 x float> %res.tmp1, float %res.f2, i32 1
%res.tmp3 = insertelement <4 x float> %res.tmp2, float %res.f3, i32 2
%res = insertelement <4 x float> %res.tmp3, float %res.errf, i32 3
@@ -2144,7 +2144,7 @@ main_body:
%v.f2 = extractelement <2 x float> %v.vec, i32 1
%v.err = extractvalue {<2 x float>, i32} %v, 1
%v.errf = bitcast i32 %v.err to float
%res.0 = insertelement <4 x float> undef, float %v.f1, i32 0
%res.0 = insertelement <4 x float> poison, float %v.f1, i32 0
%res.1 = insertelement <4 x float> %res.0, float %v.f2, i32 1
%res.2 = insertelement <4 x float> %res.1, float %v.errf, i32 2
ret <4 x float> %res.2

View File

@@ -33,13 +33,13 @@ define amdgpu_ps <4 x float> @image_bvh_intersect_ray(i32 %node_ptr, float %ray_
; GFX12-NEXT: s_wait_bvhcnt 0x0
; GFX12-NEXT: ; return to shader part epilog
main_body:
%ray_origin0 = insertelement <3 x float> undef, float %ray_origin_x, i32 0
%ray_origin0 = insertelement <3 x float> poison, float %ray_origin_x, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float %ray_origin_y, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float %ray_origin_z, i32 2
%ray_dir0 = insertelement <3 x float> undef, float %ray_dir_x, i32 0
%ray_dir0 = insertelement <3 x float> poison, float %ray_dir_x, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float %ray_dir_y, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float %ray_dir_z, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float %ray_inv_dir_x, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float %ray_inv_dir_x, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float %ray_inv_dir_y, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float %ray_inv_dir_z, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f32(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -152,13 +152,13 @@ define amdgpu_ps <4 x float> @image_bvh64_intersect_ray(<2 x i32> %node_ptr_vec,
; GFX12-NEXT: ; return to shader part epilog
main_body:
%node_ptr = bitcast <2 x i32> %node_ptr_vec to i64
%ray_origin0 = insertelement <3 x float> undef, float %ray_origin_x, i32 0
%ray_origin0 = insertelement <3 x float> poison, float %ray_origin_x, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float %ray_origin_y, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float %ray_origin_z, i32 2
%ray_dir0 = insertelement <3 x float> undef, float %ray_dir_x, i32 0
%ray_dir0 = insertelement <3 x float> poison, float %ray_dir_x, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float %ray_dir_y, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float %ray_dir_z, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float %ray_inv_dir_x, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float %ray_inv_dir_x, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float %ray_inv_dir_y, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float %ray_inv_dir_z, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f32(i64 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -411,13 +411,13 @@ main_body:
%node_ptr = load i32, ptr %gep_node_ptr, align 4
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x float> undef, float 3.0, i32 0
%ray_dir0 = insertelement <3 x float> poison, float 3.0, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float 4.0, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float 7.0, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f32(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -559,13 +559,13 @@ main_body:
%node_ptr = load i32, ptr %gep_node_ptr, align 4
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x half> undef, half 3.0, i32 0
%ray_dir0 = insertelement <3 x half> poison, half 3.0, i32 0
%ray_dir1 = insertelement <3 x half> %ray_dir0, half 4.0, i32 1
%ray_dir = insertelement <3 x half> %ray_dir1, half 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x half> undef, half 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x half> poison, half 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x half> %ray_inv_dir0, half 7.0, i32 1
%ray_inv_dir = insertelement <3 x half> %ray_inv_dir1, half 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i32.v4f16(i32 %node_ptr, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr)
@@ -720,13 +720,13 @@ main_body:
%lid = tail call i32 @llvm.amdgcn.workitem.id.x()
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x float> undef, float 3.0, i32 0
%ray_dir0 = insertelement <3 x float> poison, float 3.0, i32 0
%ray_dir1 = insertelement <3 x float> %ray_dir0, float 4.0, i32 1
%ray_dir = insertelement <3 x float> %ray_dir1, float 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x float> undef, float 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x float> poison, float 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x float> %ray_inv_dir0, float 7.0, i32 1
%ray_inv_dir = insertelement <3 x float> %ray_inv_dir1, float 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f32(i64 1111111111111, float %ray_extent, <3 x float> %ray_origin, <3 x float> %ray_dir, <3 x float> %ray_inv_dir, <4 x i32> %tdescr)
@@ -870,13 +870,13 @@ main_body:
%lid = tail call i32 @llvm.amdgcn.workitem.id.x()
%gep_ray = getelementptr inbounds float, ptr %p_ray, i32 %lid
%ray_extent = load float, ptr %gep_ray, align 4
%ray_origin0 = insertelement <3 x float> undef, float 0.0, i32 0
%ray_origin0 = insertelement <3 x float> poison, float 0.0, i32 0
%ray_origin1 = insertelement <3 x float> %ray_origin0, float 1.0, i32 1
%ray_origin = insertelement <3 x float> %ray_origin1, float 2.0, i32 2
%ray_dir0 = insertelement <3 x half> undef, half 3.0, i32 0
%ray_dir0 = insertelement <3 x half> poison, half 3.0, i32 0
%ray_dir1 = insertelement <3 x half> %ray_dir0, half 4.0, i32 1
%ray_dir = insertelement <3 x half> %ray_dir1, half 5.0, i32 2
%ray_inv_dir0 = insertelement <3 x half> undef, half 6.0, i32 0
%ray_inv_dir0 = insertelement <3 x half> poison, half 6.0, i32 0
%ray_inv_dir1 = insertelement <3 x half> %ray_inv_dir0, half 7.0, i32 1
%ray_inv_dir = insertelement <3 x half> %ray_inv_dir1, half 8.0, i32 2
%v = call <4 x i32> @llvm.amdgcn.image.bvh.intersect.ray.i64.v4f16(i64 1111111111110, float %ray_extent, <3 x float> %ray_origin, <3 x half> %ray_dir, <3 x half> %ray_inv_dir, <4 x i32> %tdescr)

View File

@@ -58,7 +58,7 @@ entry:
%b.val = load <2 x i16>, ptr addrspace(1) %b.gep
%b.elt0 = extractelement <2 x i16> %b.val, i32 0
%b.elt1 = extractelement <2 x i16> %b.val, i32 1
%b0 = insertelement <2 x i16> undef, i16 %b.elt1, i32 0
%b0 = insertelement <2 x i16> poison, i16 %b.elt1, i32 0
%b1 = insertelement <2 x i16> %b0, i16 %b.elt0, i32 1
%r.val = call i32 @llvm.amdgcn.udot2(<2 x i16> <i16 1, i16 1>, <2 x i16> %b1, i32 %c, i1 0)
store i32 %r.val, ptr addrspace(1) %r

View File

@@ -9,7 +9,7 @@ define amdgpu_ps void @test1(<4 x float> inreg %reg0) {
%r0 = extractelement <4 x float> %reg0, i32 0
%r1 = extractelement <4 x float> %reg0, i32 1
%r2 = call float @llvm.pow.f32( float %r0, float %r1)
%vec = insertelement <4 x float> undef, float %r2, i32 0
%vec = insertelement <4 x float> poison, float %r2, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -18,7 +18,7 @@ main_body:
%tmp8 = load <4 x float>, ptr addrspace(8) getelementptr ([1024 x <4 x float>], ptr addrspace(8) null, i64 0, i32 9)
%tmp9 = extractelement <4 x float> %tmp8, i32 2
%tmp10 = fdiv float %tmp9, %tmp1
%tmp11 = insertelement <4 x float> undef, float %tmp4, i32 0
%tmp11 = insertelement <4 x float> poison, float %tmp4, i32 0
%tmp12 = insertelement <4 x float> %tmp11, float %tmp7, i32 1
%tmp13 = insertelement <4 x float> %tmp12, float %tmp10, i32 2
%tmp14 = insertelement <4 x float> %tmp13, float 1.000000e+00, i32 3
@@ -33,7 +33,7 @@ main_body:
%tmp23 = fadd float %tmp22, 1.500000e+00
%tmp24 = fmul float %tmp17, %tmp21
%tmp25 = fadd float %tmp24, 1.500000e+00
%tmp26 = insertelement <4 x float> undef, float %tmp25, i32 0
%tmp26 = insertelement <4 x float> poison, float %tmp25, i32 0
%tmp27 = insertelement <4 x float> %tmp26, float %tmp23, i32 1
%tmp28 = insertelement <4 x float> %tmp27, float %tmp19, i32 2
%tmp29 = insertelement <4 x float> %tmp28, float %tmp25, i32 3

View File

@@ -66,7 +66,7 @@ entry:
%load.lo = load i16, ptr addrspace(3) %in
%load.hi = load i16, ptr addrspace(3) %gep
store i16 %load.lo, ptr addrspace(3) null
%build0 = insertelement <2 x i16> undef, i16 %load.lo, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load.lo, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load.hi, i32 1
ret <2 x i16> %build1
}
@@ -133,7 +133,7 @@ entry:
%load.lo = load i16, ptr addrspace(3) %in
%load.hi = load i16, ptr addrspace(3) %gep
store i16 %load.hi, ptr addrspace(3) null
%build0 = insertelement <2 x i16> undef, i16 %load.lo, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load.lo, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load.hi, i32 1
ret <2 x i16> %build1
}
@@ -201,7 +201,7 @@ entry:
%load.hi = load i16, ptr addrspace(3) %gep
store i16 %load.lo, ptr addrspace(3) %out0
store i16 %load.hi, ptr addrspace(3) %out1
%build0 = insertelement <2 x i16> undef, i16 %load.lo, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load.lo, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load.hi, i32 1
ret <2 x i16> %build1
}
@@ -239,7 +239,7 @@ define <2 x i16> @load_local_hi_v2i16_undeflo(ptr addrspace(3) %in) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build = insertelement <2 x i16> undef, i16 %load, i32 1
%build = insertelement <2 x i16> poison, i16 %load, i32 1
ret <2 x i16> %build
}
@@ -280,7 +280,7 @@ define <2 x i16> @load_local_hi_v2i16_reglo(ptr addrspace(3) %in, i16 %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
ret <2 x i16> %build1
}
@@ -328,7 +328,7 @@ define void @load_local_hi_v2i16_reglo_vreg(ptr addrspace(3) %in, i16 %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -459,7 +459,7 @@ define void @load_local_hi_v2f16_reglo_vreg(ptr addrspace(3) %in, half %reg) #0
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load half, ptr addrspace(3) %in
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -509,7 +509,7 @@ define void @load_local_hi_v2i16_reglo_vreg_zexti8(ptr addrspace(3) %in, i16 %re
entry:
%load = load i8, ptr addrspace(3) %in
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -559,7 +559,7 @@ define void @load_local_hi_v2i16_reglo_vreg_sexti8(ptr addrspace(3) %in, i16 %re
entry:
%load = load i8, ptr addrspace(3) %in
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -611,7 +611,7 @@ entry:
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -663,7 +663,7 @@ entry:
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -714,7 +714,7 @@ define void @load_global_hi_v2i16_reglo_vreg(ptr addrspace(1) %in, i16 %reg) #0
entry:
%gep = getelementptr inbounds i16, ptr addrspace(1) %in, i64 -2047
%load = load i16, ptr addrspace(1) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -765,7 +765,7 @@ define void @load_global_hi_v2f16_reglo_vreg(ptr addrspace(1) %in, half %reg) #0
entry:
%gep = getelementptr inbounds half, ptr addrspace(1) %in, i64 -2047
%load = load half, ptr addrspace(1) %gep
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -817,7 +817,7 @@ entry:
%gep = getelementptr inbounds i8, ptr addrspace(1) %in, i64 -4095
%load = load i8, ptr addrspace(1) %gep
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -869,7 +869,7 @@ entry:
%gep = getelementptr inbounds i8, ptr addrspace(1) %in, i64 -4095
%load = load i8, ptr addrspace(1) %gep
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -922,7 +922,7 @@ entry:
%load = load i8, ptr addrspace(1) %gep
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -975,7 +975,7 @@ entry:
%load = load i8, ptr addrspace(1) %gep
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1023,7 +1023,7 @@ define void @load_flat_hi_v2i16_reglo_vreg(ptr %in, i16 %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1071,7 +1071,7 @@ define void @load_flat_hi_v2f16_reglo_vreg(ptr %in, half %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load half, ptr %in
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1120,7 +1120,7 @@ define void @load_flat_hi_v2i16_reglo_vreg_zexti8(ptr %in, i16 %reg) #0 {
entry:
%load = load i8, ptr %in
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1169,7 +1169,7 @@ define void @load_flat_hi_v2i16_reglo_vreg_sexti8(ptr %in, i16 %reg) #0 {
entry:
%load = load i8, ptr %in
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1219,7 +1219,7 @@ entry:
%load = load i8, ptr %in
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1269,7 +1269,7 @@ entry:
%load = load i8, ptr %in
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1318,7 +1318,7 @@ define void @load_private_hi_v2i16_reglo_vreg(ptr addrspace(5) byval(i16) %in, i
entry:
%gep = getelementptr inbounds i16, ptr addrspace(5) %in, i64 2047
%load = load i16, ptr addrspace(5) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1367,7 +1367,7 @@ define void @load_private_hi_v2f16_reglo_vreg(ptr addrspace(5) byval(half) %in,
entry:
%gep = getelementptr inbounds half, ptr addrspace(5) %in, i64 2047
%load = load half, ptr addrspace(5) %gep
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1416,7 +1416,7 @@ define void @load_private_hi_v2i16_reglo_vreg_nooff(ptr addrspace(5) byval(i16)
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load volatile i16, ptr addrspace(5) inttoptr (i32 4094 to ptr addrspace(5))
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1465,7 +1465,7 @@ define void @load_private_hi_v2f16_reglo_vreg_nooff(ptr addrspace(5) %in, half %
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load volatile half, ptr addrspace(5) inttoptr (i32 4094 to ptr addrspace(5))
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1515,7 +1515,7 @@ entry:
%gep = getelementptr inbounds i8, ptr addrspace(5) %in, i64 4095
%load = load i8, ptr addrspace(5) %gep
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1566,7 +1566,7 @@ entry:
%load = load i8, ptr addrspace(5) %gep
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1617,7 +1617,7 @@ entry:
%load = load i8, ptr addrspace(5) %gep
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1667,7 +1667,7 @@ entry:
%gep = getelementptr inbounds i8, ptr addrspace(5) %in, i64 4095
%load = load i8, ptr addrspace(5) %gep
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1717,7 +1717,7 @@ define void @load_private_hi_v2i16_reglo_vreg_nooff_zexti8(ptr addrspace(5) %in,
entry:
%load = load volatile i8, ptr addrspace(5) inttoptr (i32 4094 to ptr addrspace(5))
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1767,7 +1767,7 @@ define void @load_private_hi_v2i16_reglo_vreg_nooff_sexti8(ptr addrspace(5) %in,
entry:
%load = load volatile i8, ptr addrspace(5) inttoptr (i32 4094 to ptr addrspace(5))
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1818,7 +1818,7 @@ entry:
%load = load volatile i8, ptr addrspace(5) inttoptr (i32 4094 to ptr addrspace(5))
%ext = zext i8 %load to i16
%bc.ext = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bc.ext, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1869,7 +1869,7 @@ define void @load_constant_hi_v2i16_reglo_vreg(ptr addrspace(4) %in, i16 %reg) #
entry:
%gep = getelementptr inbounds i16, ptr addrspace(4) %in, i64 -2047
%load = load i16, ptr addrspace(4) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -1920,7 +1920,7 @@ define void @load_constant_hi_v2f16_reglo_vreg(ptr addrspace(4) %in, half %reg)
entry:
%gep = getelementptr inbounds half, ptr addrspace(4) %in, i64 -2047
%load = load half, ptr addrspace(4) %gep
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %load, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1973,7 +1973,7 @@ entry:
%load = load i8, ptr addrspace(4) %gep
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -2026,7 +2026,7 @@ entry:
%load = load i8, ptr addrspace(4) %gep
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 0
%build0 = insertelement <2 x half> poison, half %reg, i32 0
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 1
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -2092,7 +2092,7 @@ entry:
store volatile i32 123, ptr addrspace(5) %obj0
%gep = getelementptr inbounds [4096 x i16], ptr addrspace(5) %obj1, i32 0, i32 2027
%load = load i16, ptr addrspace(5) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -2156,7 +2156,7 @@ entry:
%gep = getelementptr inbounds [4096 x i8], ptr addrspace(5) %obj1, i32 0, i32 4055
%load = load i8, ptr addrspace(5) %gep
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -2220,7 +2220,7 @@ entry:
%gep = getelementptr inbounds [4096 x i8], ptr addrspace(5) %obj1, i32 0, i32 4055
%load = load i8, ptr addrspace(5) %gep
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 1
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -2273,7 +2273,7 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(3) %in, i32 1
%load0 = load volatile i16, ptr addrspace(3) %in
%load1 = load volatile i16, ptr addrspace(3) %gep
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
ret <2 x i16> %build1
}
@@ -2324,7 +2324,7 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(3) %in, i32 8
%load.lo = load i16, ptr addrspace(3) %in
%load.hi = load i16, ptr addrspace(3) %gep
%build0 = insertelement <2 x i16> undef, i16 %load.lo, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load.lo, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load.hi, i32 1
ret <2 x i16> %build1
}
@@ -2370,7 +2370,7 @@ define <2 x i16> @load_local_v2i16_broadcast(ptr addrspace(3) %in) #0 {
entry:
%gep = getelementptr inbounds i16, ptr addrspace(3) %in, i32 1
%load0 = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load0, i32 1
ret <2 x i16> %build1
}
@@ -2429,7 +2429,7 @@ entry:
%load.lo = load i16, ptr addrspace(3) %in
store i16 123, ptr addrspace(3) %may.alias
%load.hi = load i16, ptr addrspace(3) %gep
%build0 = insertelement <2 x i16> undef, i16 %load.lo, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load.lo, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load.hi, i32 1
ret <2 x i16> %build1
}
@@ -2483,7 +2483,7 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(1) %in, i64 1
%load0 = load volatile i16, ptr addrspace(1) %in
%load1 = load volatile i16, ptr addrspace(1) %gep
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
ret <2 x i16> %build1
}
@@ -2538,7 +2538,7 @@ entry:
%gep = getelementptr inbounds i16, ptr %in, i64 1
%load0 = load volatile i16, ptr %in
%load1 = load volatile i16, ptr %gep
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
ret <2 x i16> %build1
}
@@ -2590,7 +2590,7 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(4) %in, i64 1
%load0 = load volatile i16, ptr addrspace(4) %in
%load1 = load volatile i16, ptr addrspace(4) %gep
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
ret <2 x i16> %build1
}
@@ -2641,7 +2641,7 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(5) %in, i32 1
%load0 = load volatile i16, ptr addrspace(5) %in
%load1 = load volatile i16, ptr addrspace(5) %gep
%build0 = insertelement <2 x i16> undef, i16 %load0, i32 0
%build0 = insertelement <2 x i16> poison, i16 %load0, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
ret <2 x i16> %build1
}
@@ -2698,7 +2698,7 @@ define <2 x i16> @load_local_hi_v2i16_store_local_lo(i16 %reg, ptr addrspace(3)
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 1
store volatile i16 %reg, ptr addrspace(3) %in
ret <2 x i16> %build1

View File

@@ -80,16 +80,16 @@ main_body:
%75 = extractelement <4 x float> %74, i32 1
%76 = load <4 x float>, ptr addrspace(8) getelementptr ([1024 x <4 x float>], ptr addrspace(8) null, i64 0, i32 4)
%77 = extractelement <4 x float> %76, i32 2
%78 = insertelement <4 x float> undef, float %4, i32 0
%78 = insertelement <4 x float> poison, float %4, i32 0
%79 = insertelement <4 x float> %78, float %5, i32 1
%80 = insertelement <4 x float> %79, float %6, i32 2
%81 = insertelement <4 x float> %80, float 0.000000e+00, i32 3
%82 = insertelement <4 x float> undef, float %73, i32 0
%82 = insertelement <4 x float> poison, float %73, i32 0
%83 = insertelement <4 x float> %82, float %75, i32 1
%84 = insertelement <4 x float> %83, float %77, i32 2
%85 = insertelement <4 x float> %84, float 0.000000e+00, i32 3
%86 = call float @llvm.r600.dot4(<4 x float> %81, <4 x float> %85)
%87 = insertelement <4 x float> undef, float %86, i32 0
%87 = insertelement <4 x float> poison, float %86, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %87, i32 2, i32 2)
ret void
}

View File

@@ -28,7 +28,7 @@ define <2 x i16> @load_local_lo_v2i16_undeflo(ptr addrspace(3) %in) #0 {
; GFX803-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build = insertelement <2 x i16> undef, i16 %load, i32 0
%build = insertelement <2 x i16> poison, i16 %load, i32 0
ret <2 x i16> %build
}
@@ -71,7 +71,7 @@ define <2 x i16> @load_local_lo_v2i16_reglo(ptr addrspace(3) %in, i16 %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 1
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 1
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 0
ret <2 x i16> %build1
}
@@ -124,7 +124,7 @@ define void @load_local_lo_v2i16_reglo_vreg(ptr addrspace(3) %in, i16 %reg) #0 {
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load i16, ptr addrspace(3) %in
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 1
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 1
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 0
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -282,7 +282,7 @@ define void @load_local_lo_v2f16_reglo_vreg(ptr addrspace(3) %in, half %reg) #0
; GFX900-FLATSCR-NEXT: s_setpc_b64 s[30:31]
entry:
%load = load half, ptr addrspace(3) %in
%build0 = insertelement <2 x half> undef, half %reg, i32 1
%build0 = insertelement <2 x half> poison, half %reg, i32 1
%build1 = insertelement <2 x half> %build0, half %load, i32 0
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -377,7 +377,7 @@ define void @load_local_lo_v2i16_reglo_vreg_zexti8(ptr addrspace(3) %in, i16 %re
entry:
%load = load i8, ptr addrspace(3) %in
%ext = zext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 1
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 1
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 0
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -472,7 +472,7 @@ define void @load_local_lo_v2i16_reglo_vreg_sexti8(ptr addrspace(3) %in, i16 %re
entry:
%load = load i8, ptr addrspace(3) %in
%ext = sext i8 %load to i16
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 1
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 1
%build1 = insertelement <2 x i16> %build0, i16 %ext, i32 0
store <2 x i16> %build1, ptr addrspace(1) undef
ret void
@@ -527,7 +527,7 @@ entry:
%load = load i8, ptr addrspace(3) %in
%ext = zext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 1
%build0 = insertelement <2 x half> poison, half %reg, i32 1
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 0
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -582,7 +582,7 @@ entry:
%load = load i8, ptr addrspace(3) %in
%ext = sext i8 %load to i16
%bitcast = bitcast i16 %ext to half
%build0 = insertelement <2 x half> undef, half %reg, i32 1
%build0 = insertelement <2 x half> poison, half %reg, i32 1
%build1 = insertelement <2 x half> %build0, half %bitcast, i32 0
store <2 x half> %build1, ptr addrspace(1) undef
ret void
@@ -1363,7 +1363,7 @@ define void @load_private_lo_v2i16_reghi_vreg(ptr addrspace(5) byval(i16) %in, i
entry:
%gep = getelementptr inbounds i16, ptr addrspace(5) %in, i64 2047
%load = load i16, ptr addrspace(5) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 1
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 1
%build1 = insertelement <2 x i16> %build0, i16 %load, i32 0
store <2 x i16> %build1, ptr addrspace(1) undef
ret void

View File

@@ -35,7 +35,7 @@ bb1: ; preds = %bb3, %bb
%i2 = extractelement <3 x float> %i, i64 2
%i3 = fmul float %i2, 1.000000e+00
%i4 = fmul nsz <3 x float> %arg, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
%i5 = insertelement <3 x float> undef, float %i3, i32 0
%i5 = insertelement <3 x float> poison, float %i3, i32 0
%i6 = shufflevector <3 x float> %i5, <3 x float> undef, <3 x i32> zeroinitializer
%i7 = fmul <3 x float> %i4, %i6
%i8 = fcmp oeq float %i3, 0.000000e+00

View File

@@ -58,7 +58,7 @@ define amdgpu_kernel void @workgroup_ids_kernel() {
%idx = call i32 @llvm.amdgcn.workgroup.id.x()
%idy = call i32 @llvm.amdgcn.workgroup.id.y()
%idz = call i32 @llvm.amdgcn.workgroup.id.z()
%ielemx = insertelement <3 x i32> undef, i32 %idx, i64 0
%ielemx = insertelement <3 x i32> poison, i32 %idx, i64 0
%ielemy = insertelement <3 x i32> %ielemx, i32 %idy, i64 1
%ielemz = insertelement <3 x i32> %ielemy, i32 %idz, i64 2
call void @llvm.amdgcn.raw.ptr.buffer.store.v3i32(<3 x i32> %ielemz, ptr addrspace(8) undef, i32 0, i32 0, i32 0)

View File

@@ -65,7 +65,7 @@ define amdgpu_cs void @_amdgpu_cs_main() {
%idx = call i32 @llvm.amdgcn.workgroup.id.x()
%idy = call i32 @llvm.amdgcn.workgroup.id.y()
%idz = call i32 @llvm.amdgcn.workgroup.id.z()
%ielemx = insertelement <3 x i32> undef, i32 %idx, i64 0
%ielemx = insertelement <3 x i32> poison, i32 %idx, i64 0
%ielemy = insertelement <3 x i32> %ielemx, i32 %idy, i64 1
%ielemz = insertelement <3 x i32> %ielemy, i32 %idz, i64 2
call void @llvm.amdgcn.raw.ptr.buffer.store.v3i32(<3 x i32> %ielemz, ptr addrspace(8) undef, i32 0, i32 0, i32 0)

View File

@@ -55,7 +55,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_undeflo(half %src0, half %s
%src2.ext = fpext half %src2 to float
%result = tail call float @llvm.fmuladd.f32(float %src0.ext, float %src1.ext, float %src2.ext)
%cvt.result = fptrunc float %result to half
%vec.result = insertelement <2 x half> undef, half %cvt.result, i32 1
%vec.result = insertelement <2 x half> poison, half %cvt.result, i32 1
ret <2 x half> %vec.result
}
@@ -112,7 +112,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_constlo(half %src0, half %s
%src2.ext = fpext half %src2 to float
%result = tail call float @llvm.fmuladd.f32(float %src0.ext, float %src1.ext, float %src2.ext)
%cvt.result = fptrunc float %result to half
%vec.result = insertelement <2 x half> <half 1.0, half undef>, half %cvt.result, i32 1
%vec.result = insertelement <2 x half> <half 1.0, half poison>, half %cvt.result, i32 1
ret <2 x half> %vec.result
}
@@ -167,7 +167,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_reglo(half %src0, half %src
%src2.ext = fpext half %src2 to float
%result = tail call float @llvm.fmuladd.f32(float %src0.ext, float %src1.ext, float %src2.ext)
%cvt.result = fptrunc float %result to half
%vec = insertelement <2 x half> undef, half %lo, i32 0
%vec = insertelement <2 x half> poison, half %lo, i32 0
%vec.result = insertelement <2 x half> %vec, half %cvt.result, i32 1
ret <2 x half> %vec.result
}
@@ -398,7 +398,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_undeflo_clamp_precvt(half %
%max = call float @llvm.maxnum.f32(float %result, float 0.0)
%clamp = call float @llvm.minnum.f32(float %max, float 1.0)
%cvt.result = fptrunc float %clamp to half
%vec.result = insertelement <2 x half> undef, half %cvt.result, i32 1
%vec.result = insertelement <2 x half> poison, half %cvt.result, i32 1
ret <2 x half> %vec.result
}
@@ -457,7 +457,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_undeflo_clamp_postcvt(half
%cvt.result = fptrunc float %result to half
%max = call half @llvm.maxnum.f16(half %cvt.result, half 0.0)
%clamp = call half @llvm.minnum.f16(half %max, half 1.0)
%vec.result = insertelement <2 x half> undef, half %clamp, i32 1
%vec.result = insertelement <2 x half> poison, half %clamp, i32 1
ret <2 x half> %vec.result
}
@@ -534,7 +534,7 @@ define <2 x half> @v_mad_mixhi_f16_f16lo_f16lo_f16lo_undeflo_clamp_postcvt_multi
store volatile half %cvt.result, ptr addrspace(1) undef
%max = call half @llvm.maxnum.f16(half %cvt.result, half 0.0)
%clamp = call half @llvm.minnum.f16(half %max, half 1.0)
%vec.result = insertelement <2 x half> undef, half %clamp, i32 1
%vec.result = insertelement <2 x half> poison, half %clamp, i32 1
ret <2 x half> %vec.result
}

View File

@@ -298,7 +298,7 @@ bb19: ; preds = %bb19, %bb
%tmp39 = mul i32 %tmp38, %tmp
%tmp40 = add i32 %tmp39, %arg5
store i32 %tmp40, ptr addrspace(1) %arg7
%tmp41 = insertelement <4 x i32> undef, i32 %tmp40, i32 0
%tmp41 = insertelement <4 x i32> poison, i32 %tmp40, i32 0
%tmp42 = and i32 %tmp29, 16777215
%tmp43 = mul i32 %tmp42, %tmp11
%tmp44 = add i32 %tmp43, %tmp10

View File

@@ -17,14 +17,14 @@ main_body:
%9 = bitcast float %4 to i32
%10 = mul i32 %9, 6
%11 = bitcast i32 %10 to float
%12 = insertelement <4 x float> undef, float %5, i32 0
%12 = insertelement <4 x float> poison, float %5, i32 0
%13 = insertelement <4 x float> %12, float %6, i32 1
%14 = insertelement <4 x float> %13, float %7, i32 2
%15 = insertelement <4 x float> %14, float %8, i32 3
%16 = insertelement <4 x float> %15, float %11, i32 3
%17 = call float @llvm.r600.dot4(<4 x float> %15,<4 x float> %16)
%18 = insertelement <4 x float> undef, float %17, i32 0
%18 = insertelement <4 x float> poison, float %17, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %18, i32 0, i32 2)
ret void
}
@@ -46,14 +46,14 @@ main_body:
%9 = bitcast float %4 to i32
%10 = mul i32 %9, 6
%11 = bitcast i32 %10 to float
%12 = insertelement <4 x float> undef, float %5, i32 0
%12 = insertelement <4 x float> poison, float %5, i32 0
%13 = insertelement <4 x float> %12, float %6, i32 1
%14 = insertelement <4 x float> %13, float %7, i32 2
%15 = insertelement <4 x float> %14, float %8, i32 3
%16 = insertelement <4 x float> %15, float %11, i32 3
%17 = call float @llvm.r600.dot4(<4 x float> %15,<4 x float> %16)
%18 = insertelement <4 x float> undef, float %17, i32 0
%18 = insertelement <4 x float> poison, float %17, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %18, i32 0, i32 2)
ret void
}

View File

@@ -328,10 +328,10 @@ entry:
%gep = getelementptr inbounds i16, ptr addrspace(1) %in, i64 32
%load1 = load i16, ptr addrspace(1) %in
%load2 = load i16, ptr addrspace(1) %gep
%build0 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build0 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build1 = insertelement <2 x i16> %build0, i16 %load1, i32 1
store <2 x i16> %build1, ptr addrspace(1) %out
%build2 = insertelement <2 x i16> undef, i16 %reg, i32 0
%build2 = insertelement <2 x i16> poison, i16 %reg, i32 0
%build3 = insertelement <2 x i16> %build2, i16 %load2, i32 1
%gep2 = getelementptr inbounds <2 x i16>, ptr addrspace(1) %out, i64 32
store <2 x i16> %build3, ptr addrspace(1) %gep2

View File

@@ -22,10 +22,10 @@ main_body:
%tmp5 = getelementptr [8192 x i32], ptr addrspace(3) @tess_lds, i64 0, i64 %tmp4
store float %tmp1, ptr addrspace(3) %tmp5, align 4
%tmp7 = bitcast float %tmp1 to i32
%tmp8 = insertelement <4 x i32> undef, i32 %tmp2, i32 0
%tmp8 = insertelement <4 x i32> poison, i32 %tmp2, i32 0
%tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp7, i32 1
%tmp10 = insertelement <4 x i32> %tmp9, i32 undef, i32 2
%tmp11 = insertelement <4 x i32> %tmp10, i32 undef, i32 3
%tmp10 = insertelement <4 x i32> %tmp9, i32 poison, i32 2
%tmp11 = insertelement <4 x i32> %tmp10, i32 poison, i32 3
call void @llvm.amdgcn.struct.ptr.tbuffer.store.v4i32(<4 x i32> %tmp11, ptr addrspace(8) undef, i32 0, i32 0, i32 %arg, i32 78, i32 3) #2
ret void
}

View File

@@ -264,7 +264,7 @@ define amdgpu_kernel void @test_mfma_loop_vgpr_init(ptr addrspace(1) %arg) #0 {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
%init = bitcast i32 %tid to float
%tmp0 = insertelement <32 x float> undef, float %init, i32 0
%tmp0 = insertelement <32 x float> poison, float %init, i32 0
%tmp1 = insertelement <32 x float> %tmp0, float %init, i32 1
%tmp2 = insertelement <32 x float> %tmp1, float %init, i32 2
%tmp3 = insertelement <32 x float> %tmp2, float %init, i32 3
@@ -332,7 +332,7 @@ exit:
define amdgpu_kernel void @test_mfma_loop_sgpr_init(ptr addrspace(1) %arg, float %init) #0 {
entry:
%tmp0 = insertelement <32 x float> undef, float %init, i32 0
%tmp0 = insertelement <32 x float> poison, float %init, i32 0
%tmp1 = insertelement <32 x float> %tmp0, float %init, i32 1
%tmp2 = insertelement <32 x float> %tmp1, float %init, i32 2
%tmp3 = insertelement <32 x float> %tmp2, float %init, i32 3
@@ -527,7 +527,7 @@ define amdgpu_kernel void @test_mfma_loop_agpr_init(ptr addrspace(1) %arg) #0 {
entry:
%mai.0 = tail call <32 x float> @llvm.amdgcn.mfma.f32.32x32x1f32(float 1.0, float 2.0, <32 x float> zeroinitializer, i32 0, i32 0, i32 0)
%init = extractelement <32 x float> %mai.0, i32 0
%tmp0 = insertelement <32 x float> undef, float %init, i32 0
%tmp0 = insertelement <32 x float> poison, float %init, i32 0
%tmp1 = insertelement <32 x float> %tmp0, float %init, i32 1
%tmp2 = insertelement <32 x float> %tmp1, float %init, i32 2
%tmp3 = insertelement <32 x float> %tmp2, float %init, i32 3

View File

@@ -15,7 +15,7 @@ main_body:
%lod.1 = fadd float %lod, 1.0
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare.1, float %s1.1, float %t1.1, float %r1.1, float %lod.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2.1, float %t2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -35,7 +35,7 @@ main_body:
%lod.1 = fadd float %lod, 1.0
%v1 = call float @llvm.amdgcn.image.sample.c.l.3d.f32.f32(i32 1, float %zcompare.1, float %s1.1, float %t1.1, float %r1.1, float %lod.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2.1, float %t2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -55,7 +55,7 @@ main_body:
%lod.1 = fadd float %lod, 1.0
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2.1, float %t2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%v1 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %t2.1, float %s2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}
@@ -75,7 +75,7 @@ main_body:
%lod.1 = fadd float %lod, 1.0
%v2 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2.1, float %t2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 1)
%v1 = call float @llvm.amdgcn.image.sample.3d.f32.f32(i32 1, float %s2.1, float %t2.1, float %r2.1, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)
%r.0 = insertelement <2 x float> undef, float %v1, i32 0
%r.0 = insertelement <2 x float> poison, float %v1, i32 0
%r = insertelement <2 x float> %r.0, float %v2, i32 1
ret <2 x float> %r
}

View File

@@ -68,7 +68,7 @@ entry:
%tmp1 = add i32 %tmp0, 1
%tmp2 = add i32 %tmp0, 2
%tmp3 = add i32 %tmp0, 3
%vec0 = insertelement <4 x i32> undef, i32 %tmp0, i32 0
%vec0 = insertelement <4 x i32> poison, i32 %tmp0, i32 0
%vec1 = insertelement <4 x i32> %vec0, i32 %tmp1, i32 1
%vec2 = insertelement <4 x i32> %vec1, i32 %tmp2, i32 2
%vec3 = insertelement <4 x i32> %vec2, i32 %tmp3, i32 3
@@ -100,7 +100,7 @@ entry:
%tmp1 = add i32 %tmp0, 1
%tmp2 = add i32 %tmp0, 2
%tmp3 = add i32 %tmp0, 3
%vec0 = insertelement <4 x i32> undef, i32 %tmp0, i32 0
%vec0 = insertelement <4 x i32> poison, i32 %tmp0, i32 0
%vec1 = insertelement <4 x i32> %vec0, i32 %tmp1, i32 1
%vec2 = insertelement <4 x i32> %vec1, i32 %tmp2, i32 2
%vec3 = insertelement <4 x i32> %vec2, i32 %tmp3, i32 3

View File

@@ -53,7 +53,7 @@ define amdgpu_kernel void @s_pack_v2f16(ptr addrspace(4) %in0, ptr addrspace(4)
%hi.i = trunc i32 %val1 to i16
%lo = bitcast i16 %lo.i to half
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
@@ -102,7 +102,7 @@ define amdgpu_kernel void @s_pack_v2f16_imm_lo(ptr addrspace(4) %in1) #0 {
%val1 = load i32, ptr addrspace(4) %in1
%hi.i = trunc i32 %val1 to i16
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half 0xH1234, i32 0
%vec.0 = insertelement <2 x half> poison, half 0xH1234, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
@@ -151,7 +151,7 @@ define amdgpu_kernel void @s_pack_v2f16_imm_hi(ptr addrspace(4) %in0) #0 {
%val0 = load i32, ptr addrspace(4) %in0
%lo.i = trunc i32 %val0 to i16
%lo = bitcast i16 %lo.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half 0xH1234, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
@@ -230,7 +230,7 @@ define amdgpu_kernel void @v_pack_v2f16(ptr addrspace(1) %in0, ptr addrspace(1)
%hi.i = trunc i32 %val1 to i16
%lo = bitcast i16 %lo.i to half
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -313,7 +313,7 @@ define amdgpu_kernel void @v_pack_v2f16_user(ptr addrspace(1) %in0, ptr addrspac
%hi.i = trunc i32 %val1 to i16
%lo = bitcast i16 %lo.i to half
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
%foo = add i32 %vec.i32, 9
@@ -376,7 +376,7 @@ define amdgpu_kernel void @v_pack_v2f16_imm_lo(ptr addrspace(1) %in1) #0 {
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%hi.i = trunc i32 %val1 to i16
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half 0xH1234, i32 0
%vec.0 = insertelement <2 x half> poison, half 0xH1234, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -438,7 +438,7 @@ define amdgpu_kernel void @v_pack_v2f16_inline_imm_lo(ptr addrspace(1) %in1) #0
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%hi.i = trunc i32 %val1 to i16
%hi = bitcast i16 %hi.i to half
%vec.0 = insertelement <2 x half> undef, half 4.0, i32 0
%vec.0 = insertelement <2 x half> poison, half 4.0, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half %hi, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -500,7 +500,7 @@ define amdgpu_kernel void @v_pack_v2f16_imm_hi(ptr addrspace(1) %in0) #0 {
%val0 = load volatile i32, ptr addrspace(1) %in0.gep
%lo.i = trunc i32 %val0 to i16
%lo = bitcast i16 %lo.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half 0xH1234, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -562,7 +562,7 @@ define amdgpu_kernel void @v_pack_v2f16_inline_f16imm_hi(ptr addrspace(1) %in0)
%val0 = load volatile i32, ptr addrspace(1) %in0.gep
%lo.i = trunc i32 %val0 to i16
%lo = bitcast i16 %lo.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half 1.0, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -623,7 +623,7 @@ define amdgpu_kernel void @v_pack_v2f16_inline_imm_hi(ptr addrspace(1) %in0) #0
%val0 = load volatile i32, ptr addrspace(1) %in0.gep
%lo.i = trunc i32 %val0 to i16
%lo = bitcast i16 %lo.i to half
%vec.0 = insertelement <2 x half> undef, half %lo, i32 0
%vec.0 = insertelement <2 x half> poison, half %lo, i32 0
%vec.1 = insertelement <2 x half> %vec.0, half 0xH0040, i32 1
%vec.i32 = bitcast <2 x half> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0

View File

@@ -51,7 +51,7 @@ define amdgpu_kernel void @s_pack_v2i16(ptr addrspace(4) %in0, ptr addrspace(4)
%val1 = load volatile i32, ptr addrspace(4) %in1
%lo = trunc i32 %val0 to i16
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
@@ -99,7 +99,7 @@ define amdgpu_kernel void @s_pack_v2i16_imm_lo(ptr addrspace(4) %in1) #0 {
; GFX7-NEXT: s_endpgm
%val1 = load i32, ptr addrspace(4) %in1
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 456, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 456, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
@@ -147,7 +147,7 @@ define amdgpu_kernel void @s_pack_v2i16_imm_hi(ptr addrspace(4) %in0) #0 {
; GFX7-NEXT: s_endpgm
%val0 = load i32, ptr addrspace(4) %in0
%lo = trunc i32 %val0 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 456, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
@@ -224,7 +224,7 @@ define amdgpu_kernel void @v_pack_v2i16(ptr addrspace(1) %in0, ptr addrspace(1)
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%lo = trunc i32 %val0 to i16
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -305,7 +305,7 @@ define amdgpu_kernel void @v_pack_v2i16_user(ptr addrspace(1) %in0, ptr addrspac
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%lo = trunc i32 %val0 to i16
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
%foo = add i32 %vec.i32, 9
@@ -367,7 +367,7 @@ define amdgpu_kernel void @v_pack_v2i16_imm_lo(ptr addrspace(1) %in1) #0 {
%in1.gep = getelementptr inbounds i32, ptr addrspace(1) %in1, i64 %tid.ext
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 123, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 123, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -427,7 +427,7 @@ define amdgpu_kernel void @v_pack_v2i16_inline_imm_lo(ptr addrspace(1) %in1) #0
%in1.gep = getelementptr inbounds i32, ptr addrspace(1) %in1, i64 %tid.ext
%val1 = load volatile i32, ptr addrspace(1) %in1.gep
%hi = trunc i32 %val1 to i16
%vec.0 = insertelement <2 x i16> undef, i16 64, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 64, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 %hi, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -488,7 +488,7 @@ define amdgpu_kernel void @v_pack_v2i16_imm_hi(ptr addrspace(1) %in0) #0 {
%in0.gep = getelementptr inbounds i32, ptr addrspace(1) %in0, i64 %tid.ext
%val0 = load volatile i32, ptr addrspace(1) %in0.gep
%lo = trunc i32 %val0 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 123, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0
@@ -548,7 +548,7 @@ define amdgpu_kernel void @v_pack_v2i16_inline_imm_hi(ptr addrspace(1) %in0) #0
%in0.gep = getelementptr inbounds i32, ptr addrspace(1) %in0, i64 %tid.ext
%val0 = load volatile i32, ptr addrspace(1) %in0.gep
%lo = trunc i32 %val0 to i16
%vec.0 = insertelement <2 x i16> undef, i16 %lo, i32 0
%vec.0 = insertelement <2 x i16> poison, i16 %lo, i32 0
%vec.1 = insertelement <2 x i16> %vec.0, i16 7, i32 1
%vec.i32 = bitcast <2 x i16> %vec.1 to i32
call void asm sideeffect "; use $0", "v"(i32 %vec.i32) #0

View File

@@ -77,7 +77,7 @@ define amdgpu_kernel void @fadd_v2_v_v_splat(ptr addrspace(1) %a) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fid = bitcast i32 %id to float
%tmp1 = insertelement <2 x float> undef, float %fid, i64 0
%tmp1 = insertelement <2 x float> poison, float %fid, i64 0
%k = insertelement <2 x float> %tmp1, float %fid, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -152,7 +152,7 @@ define amdgpu_kernel void @fadd_v2_v_fneg(ptr addrspace(1) %a, float %x) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %fneg, i64 0
%tmp1 = insertelement <2 x float> poison, float %fneg, i64 0
%k = insertelement <2 x float> %tmp1, float %fneg, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -169,7 +169,7 @@ define amdgpu_kernel void @fadd_v2_v_fneg_lo(ptr addrspace(1) %a, float %x) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %fneg, i64 0
%tmp1 = insertelement <2 x float> poison, float %fneg, i64 0
%k = insertelement <2 x float> %tmp1, float %x, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -186,7 +186,7 @@ define amdgpu_kernel void @fadd_v2_v_fneg_hi(ptr addrspace(1) %a, float %x) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %x, i64 0
%tmp1 = insertelement <2 x float> poison, float %x, i64 0
%k = insertelement <2 x float> %tmp1, float %fneg, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -203,7 +203,7 @@ define amdgpu_kernel void @fadd_v2_v_fneg_lo2(ptr addrspace(1) %a, float %x, flo
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %fneg, i64 0
%tmp1 = insertelement <2 x float> poison, float %fneg, i64 0
%k = insertelement <2 x float> %tmp1, float %y, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -220,7 +220,7 @@ define amdgpu_kernel void @fadd_v2_v_fneg_hi2(ptr addrspace(1) %a, float %x, flo
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %y, i64 0
%tmp1 = insertelement <2 x float> poison, float %y, i64 0
%k = insertelement <2 x float> %tmp1, float %fneg, i64 1
%add = fadd <2 x float> %load, %k
store <2 x float> %add, ptr addrspace(1) %gep, align 8
@@ -298,7 +298,7 @@ define amdgpu_kernel void @fmul_v2_v_v_splat(ptr addrspace(1) %a) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fid = bitcast i32 %id to float
%tmp1 = insertelement <2 x float> undef, float %fid, i64 0
%tmp1 = insertelement <2 x float> poison, float %fid, i64 0
%k = insertelement <2 x float> %tmp1, float %fid, i64 1
%mul = fmul <2 x float> %load, %k
store <2 x float> %mul, ptr addrspace(1) %gep, align 8
@@ -342,7 +342,7 @@ define amdgpu_kernel void @fmul_v2_v_fneg(ptr addrspace(1) %a, float %x) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %fneg, i64 0
%tmp1 = insertelement <2 x float> poison, float %fneg, i64 0
%k = insertelement <2 x float> %tmp1, float %fneg, i64 1
%mul = fmul <2 x float> %load, %k
store <2 x float> %mul, ptr addrspace(1) %gep, align 8
@@ -422,7 +422,7 @@ define amdgpu_kernel void @fma_v2_v_v_splat(ptr addrspace(1) %a) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fid = bitcast i32 %id to float
%tmp1 = insertelement <2 x float> undef, float %fid, i64 0
%tmp1 = insertelement <2 x float> poison, float %fid, i64 0
%k = insertelement <2 x float> %tmp1, float %fid, i64 1
%fma = tail call <2 x float> @llvm.fma.v2f32(<2 x float> %load, <2 x float> %k, <2 x float> %k)
store <2 x float> %fma, ptr addrspace(1) %gep, align 8
@@ -468,7 +468,7 @@ define amdgpu_kernel void @fma_v2_v_fneg(ptr addrspace(1) %a, float %x) {
%gep = getelementptr inbounds <2 x float>, ptr addrspace(1) %a, i32 %id
%load = load <2 x float>, ptr addrspace(1) %gep, align 8
%fneg = fsub float -0.0, %x
%tmp1 = insertelement <2 x float> undef, float %fneg, i64 0
%tmp1 = insertelement <2 x float> poison, float %fneg, i64 0
%k = insertelement <2 x float> %tmp1, float %fneg, i64 1
%fma = tail call <2 x float> @llvm.fma.v2f32(<2 x float> %load, <2 x float> %k, <2 x float> %k)
store <2 x float> %fma, ptr addrspace(1) %gep, align 8
@@ -485,7 +485,7 @@ bb:
%scalar0 = load volatile float, ptr addrspace(3) %arg2, align 4
%neg.scalar0 = fsub float -0.0, %scalar0
%neg.scalar0.vec = insertelement <2 x float> undef, float %neg.scalar0, i32 0
%neg.scalar0.vec = insertelement <2 x float> poison, float %neg.scalar0, i32 0
%neg.scalar0.broadcast = shufflevector <2 x float> %neg.scalar0.vec, <2 x float> undef, <2 x i32> zeroinitializer
%result = fadd <2 x float> %vec0, %neg.scalar0.broadcast
@@ -508,7 +508,7 @@ bb:
%scalar0 = load volatile float, ptr addrspace(3) %arg2, align 4
%scalar1 = load volatile float, ptr addrspace(3) %arg2.gep, align 4
%vec.ins0 = insertelement <2 x float> undef, float %scalar0, i32 0
%vec.ins0 = insertelement <2 x float> poison, float %scalar0, i32 0
%vec2 = insertelement <2 x float> %vec.ins0, float %scalar1, i32 1
%neg.vec2 = fsub <2 x float> <float -0.0, float -0.0>, %vec2

View File

@@ -23,7 +23,7 @@ bb:
%vec1 = load volatile <2 x half>, ptr addrspace(3) %lds.gep1, align 4
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%scalar0.vec = insertelement <2 x half> undef, half %scalar0, i32 0
%scalar0.vec = insertelement <2 x half> poison, half %scalar0, i32 0
%scalar0.broadcast = shufflevector <2 x half> %scalar0.vec, <2 x half> undef, <2 x i32> zeroinitializer
%result = tail call <2 x half> @llvm.fma.v2f16(<2 x half> %vec0, <2 x half> %vec1, <2 x half> %scalar0.broadcast)
@@ -54,7 +54,7 @@ bb:
%vec1 = load volatile <2 x half>, ptr addrspace(3) %lds.gep1, align 4
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%scalar0.vec = insertelement <2 x half> undef, half %scalar0, i32 0
%scalar0.vec = insertelement <2 x half> poison, half %scalar0, i32 0
%scalar0.broadcast = shufflevector <2 x half> %scalar0.vec, <2 x half> undef, <2 x i32> zeroinitializer
%neg.scalar0.broadcast = fsub <2 x half> <half -0.0, half -0.0>, %scalar0.broadcast
@@ -87,7 +87,7 @@ bb:
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%neg.scalar0 = fsub half -0.0, %scalar0
%neg.scalar0.vec = insertelement <2 x half> undef, half %neg.scalar0, i32 0
%neg.scalar0.vec = insertelement <2 x half> poison, half %neg.scalar0, i32 0
%neg.scalar0.broadcast = shufflevector <2 x half> %neg.scalar0.vec, <2 x half> undef, <2 x i32> zeroinitializer
%result = tail call <2 x half> @llvm.fma.v2f16(<2 x half> %vec0, <2 x half> %vec1, <2 x half> %neg.scalar0.broadcast)
@@ -119,7 +119,7 @@ bb:
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%neg.scalar0 = fsub half -0.0, %scalar0
%neg.scalar0.vec = insertelement <2 x half> undef, half %neg.scalar0, i32 0
%neg.scalar0.vec = insertelement <2 x half> poison, half %neg.scalar0, i32 0
%neg.scalar0.broadcast = shufflevector <2 x half> %neg.scalar0.vec, <2 x half> undef, <2 x i32> zeroinitializer
%neg.neg.scalar0.broadcast = fsub <2 x half> <half -0.0, half -0.0>, %neg.scalar0.broadcast
@@ -152,7 +152,7 @@ bb:
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%neg.scalar0 = fsub half -0.0, %scalar0
%neg.scalar0.vec = insertelement <2 x half> undef, half %neg.scalar0, i32 0
%neg.scalar0.vec = insertelement <2 x half> poison, half %neg.scalar0, i32 0
%neg.scalar0.scalar0 = insertelement <2 x half> %neg.scalar0.vec, half %scalar0, i32 1
%result = tail call <2 x half> @llvm.fma.v2f16(<2 x half> %vec0, <2 x half> %vec1, <2 x half> %neg.scalar0.scalar0)
store <2 x half> %result, ptr addrspace(1) %out, align 4
@@ -183,7 +183,7 @@ bb:
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%neg.scalar0 = fsub half -0.0, %scalar0
%neg.scalar0.vec = insertelement <2 x half> undef, half %scalar0, i32 0
%neg.scalar0.vec = insertelement <2 x half> poison, half %scalar0, i32 0
%scalar0.neg.scalar0 = insertelement <2 x half> %neg.scalar0.vec, half %neg.scalar0, i32 1
%result = tail call <2 x half> @llvm.fma.v2f16(<2 x half> %vec0, <2 x half> %vec1, <2 x half> %scalar0.neg.scalar0)
store <2 x half> %result, ptr addrspace(1) %out, align 4
@@ -211,7 +211,7 @@ bb:
%neg.scalar0 = fsub half -0.0, %scalar0
%neg.scalar0.bc = bitcast half %neg.scalar0 to i16
%neg.scalar0.vec = insertelement <2 x i16> undef, i16 %neg.scalar0.bc, i32 0
%neg.scalar0.vec = insertelement <2 x i16> poison, i16 %neg.scalar0.bc, i32 0
%neg.scalar0.broadcast = shufflevector <2 x i16> %neg.scalar0.vec, <2 x i16> undef, <2 x i32> zeroinitializer
%result = add <2 x i16> %vec0, %neg.scalar0.broadcast
@@ -250,7 +250,7 @@ bb:
%scalar1 = load volatile half, ptr addrspace(3) %arg2.gep, align 2
%neg.scalar1 = fsub half -0.0, %scalar1
%vec.ins0 = insertelement <2 x half> undef, half %scalar0, i32 0
%vec.ins0 = insertelement <2 x half> poison, half %scalar0, i32 0
%vec2 = insertelement <2 x half> %vec.ins0, half %neg.scalar1, i32 1
%result = tail call <2 x half> @llvm.fma.v2f16(<2 x half> %vec0, <2 x half> %vec1, <2 x half> %vec2)
store <2 x half> %result, ptr addrspace(1) %out, align 4
@@ -285,7 +285,7 @@ bb:
%scalar0 = load volatile half, ptr addrspace(3) %arg2, align 2
%scalar1 = load volatile half, ptr addrspace(3) %arg2.gep, align 2
%vec.ins0 = insertelement <2 x half> undef, half %scalar0, i32 0
%vec.ins0 = insertelement <2 x half> poison, half %scalar0, i32 0
%vec2 = insertelement <2 x half> %vec.ins0, half %scalar1, i32 1
%neg.vec2 = fsub <2 x half> <half -0.0, half -0.0>, %vec2
@@ -710,7 +710,7 @@ bb:
%hi = lshr i64 %i64, 16
%elt1 = trunc i64 %hi to i16
%ins0 = insertelement <2 x i16> undef, i16 %elt1, i32 0
%ins0 = insertelement <2 x i16> poison, i16 %elt1, i32 0
%ins1 = insertelement <2 x i16> %ins0, i16 %elt0, i32 1
%result = add <2 x i16> %vec0, %ins1
store <2 x i16> %result, ptr addrspace(1) %out, align 4
@@ -791,7 +791,7 @@ bb:
%shl = shl i16 %scalar0, 1
%shl.bc = bitcast i16 %shl to half
%insert0 = insertelement <2 x half> undef, half %shl.bc, i32 0
%insert0 = insertelement <2 x half> poison, half %shl.bc, i32 0
%fadd = fadd <2 x half> %vec2, <half 2.0, half 2.0>
%insert1 = shufflevector <2 x half> %fadd, <2 x half> %insert0, <2 x i32> <i32 1, i32 0>

View File

@@ -16,7 +16,7 @@ IF: ; preds = %main_body
ENDIF: ; preds = %IF, %main_body
%5 = phi float [%4, %IF], [0.000000e+00, %main_body]
%6 = insertelement <4 x float> undef, float %5, i32 0
%6 = insertelement <4 x float> poison, float %5, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %6, i32 0, i32 0)
ret void
}

View File

@@ -6,7 +6,7 @@
define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_1_arg(i32 inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x float> %arg3, <2 x float> %arg4, <2 x float> %arg5, <3 x float> %arg6, <2 x float> %arg7, <2 x float> %arg8, <2 x float> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, i32 %arg15, i32 %arg16, i32 %arg17, i32 %arg18) local_unnamed_addr #0 {
.entry:
%i1 = extractelement <2 x float> %arg3, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret2 = insertvalue { <4 x float> } poison, <4 x float> %ret1, 0
ret { <4 x float> } %ret2
}
@@ -18,7 +18,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_3_arg(i32 inreg %arg, i32
%i1 = extractelement <2 x float> %arg3, i32 1
%i2 = extractelement <2 x float> %arg4, i32 0
%i3 = extractelement <2 x float> %arg5, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret2 = insertvalue { <4 x float> } poison, <4 x float> %ret1.2, 0
@@ -31,7 +31,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_2_arg_gap(i32 inreg %arg,
.entry:
%i1 = extractelement <2 x float> %arg3, i32 1
%i3 = extractelement <2 x float> %arg5, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.2 = insertelement <4 x float> %ret1, float %i3, i32 1
%ret2 = insertvalue { <4 x float> } poison, <4 x float> %ret1.2, 0
ret { <4 x float> } %ret2
@@ -45,7 +45,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_2_arg_no_pack(i32 inreg %
.entry:
%i1 = extractelement <2 x float> %arg3, i32 1
%i3 = extractelement <2 x float> %arg5, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.2 = insertelement <4 x float> %ret1, float %i3, i32 1
%ret2 = insertvalue { <4 x float> } poison, <4 x float> %ret1.2, 0
ret { <4 x float> } %ret2
@@ -63,17 +63,17 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%i6 = extractelement <2 x float> %arg8, i32 0
%i7 = extractelement <2 x float> %arg9, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret1.3 = insertelement <4 x float> %ret1.2, float %i4, i32 3
%ret2 = insertelement <4 x float> undef, float %i5, i32 0
%ret2 = insertelement <4 x float> poison, float %i5, i32 0
%ret2.1 = insertelement <4 x float> %ret2, float %i6, i32 1
%ret2.2 = insertelement <4 x float> %ret2.1, float %i7, i32 2
%ret2.3 = insertelement <4 x float> %ret2.2, float %arg10, i32 3
%ret3 = insertelement <4 x float> undef, float %arg11, i32 0
%ret3 = insertelement <4 x float> poison, float %arg11, i32 0
%ret3.1 = insertelement <4 x float> %ret3, float %arg12, i32 1
%ret3.2 = insertelement <4 x float> %ret3.1, float %arg13, i32 2
%ret3.3 = insertelement <4 x float> %ret3.2, float %arg14, i32 3
@@ -83,7 +83,7 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%arg17.f = bitcast i32 %arg17 to float
%arg18.f = bitcast i32 %arg18 to float
%ret4 = insertelement <4 x float> undef, float %arg15.f, i32 0
%ret4 = insertelement <4 x float> poison, float %arg15.f, i32 0
%ret4.1 = insertelement <4 x float> %ret4, float %arg16.f, i32 1
%ret4.2 = insertelement <4 x float> %ret4.1, float %arg17.f, i32 2
%ret4.3 = insertelement <4 x float> %ret4.2, float %arg18.f, i32 3
@@ -109,17 +109,17 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%i6 = extractelement <2 x float> %arg8, i32 0
%i7 = extractelement <2 x float> %arg9, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret1.3 = insertelement <4 x float> %ret1.2, float %i4, i32 3
%ret2 = insertelement <4 x float> undef, float %i5, i32 0
%ret2 = insertelement <4 x float> poison, float %i5, i32 0
%ret2.1 = insertelement <4 x float> %ret2, float %i6, i32 1
%ret2.2 = insertelement <4 x float> %ret2.1, float %i7, i32 2
%ret2.3 = insertelement <4 x float> %ret2.2, float %arg10, i32 3
%ret3 = insertelement <4 x float> undef, float %arg11, i32 0
%ret3 = insertelement <4 x float> poison, float %arg11, i32 0
%ret3.1 = insertelement <4 x float> %ret3, float %arg12, i32 1
%ret3.2 = insertelement <4 x float> %ret3.1, float %arg13, i32 2
%ret3.3 = insertelement <4 x float> %ret3.2, float %arg14, i32 3
@@ -129,7 +129,7 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%arg17.f = bitcast i32 %arg17 to float
%arg18.f = bitcast i32 %arg18 to float
%ret4 = insertelement <4 x float> undef, float %arg15.f, i32 0
%ret4 = insertelement <4 x float> poison, float %arg15.f, i32 0
%ret4.1 = insertelement <4 x float> %ret4, float %arg16.f, i32 1
%ret4.2 = insertelement <4 x float> %ret4.1, float %arg17.f, i32 2
%ret4.3 = insertelement <4 x float> %ret4.2, float %arg18.f, i32 3
@@ -155,17 +155,17 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%i6 = extractelement <2 x float> %arg8, i32 0
%i7 = extractelement <2 x float> %arg9, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret1.3 = insertelement <4 x float> %ret1.2, float %i4, i32 3
%ret2 = insertelement <4 x float> undef, float %i5, i32 0
%ret2 = insertelement <4 x float> poison, float %i5, i32 0
%ret2.1 = insertelement <4 x float> %ret2, float %i6, i32 1
%ret2.2 = insertelement <4 x float> %ret2.1, float %i7, i32 2
%ret2.3 = insertelement <4 x float> %ret2.2, float %arg10, i32 3
%ret3 = insertelement <4 x float> undef, float %arg11, i32 0
%ret3 = insertelement <4 x float> poison, float %arg11, i32 0
%ret3.1 = insertelement <4 x float> %ret3, float %arg12, i32 1
%ret3.2 = insertelement <4 x float> %ret3.1, float %arg13, i32 2
%ret3.3 = insertelement <4 x float> %ret3.2, float %arg14, i32 3
@@ -178,7 +178,7 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%arg15_16.f = fadd float %arg15.f, %arg16.f
%arg17_18.f = fadd float %arg17.f, %arg18.f
%ret4 = insertelement <4 x float> undef, float %extra_arg1, i32 0
%ret4 = insertelement <4 x float> poison, float %extra_arg1, i32 0
%ret4.1 = insertelement <4 x float> %ret4, float %extra_arg2, i32 1
%ret4.2 = insertelement <4 x float> %ret4.1, float %arg15_16.f, i32 2
%ret4.3 = insertelement <4 x float> %ret4.2, float %arg17_18.f, i32 3
@@ -212,7 +212,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_all_unused_ia0(i32 inreg
; CHECK: NumVgprs: 4
define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_all_unused_extra_used(i32 inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x float> %arg3, <2 x float> %arg4, <2 x float> %arg5, <3 x float> %arg6, <2 x float> %arg7, <2 x float> %arg8, <2 x float> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, i32 %arg15, i32 %arg16, i32 %arg17, i32 %arg18, float %extra_arg1, float %extra_arg2) local_unnamed_addr #0 {
.entry:
%ret4.1 = insertelement <4 x float> undef, float %extra_arg1, i32 0
%ret4.1 = insertelement <4 x float> poison, float %extra_arg1, i32 0
%ret4.2 = insertelement <4 x float> %ret4.1, float %extra_arg2, i32 1
%ret.res = insertvalue { <4 x float> } poison, <4 x float> %ret4.2, 0
@@ -224,7 +224,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_all_unused_extra_used(i32
; CHECK: NumVgprs: 5
define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_part_unused_extra_used(i32 inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x float> %arg3, <2 x float> %arg4, <2 x float> %arg5, <3 x float> %arg6, <2 x float> %arg7, <2 x float> %arg8, <2 x float> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, i32 %arg15, i32 %arg16, i32 %arg17, i32 %arg18, float %extra_arg1, float %extra_arg2) local_unnamed_addr #0 {
.entry:
%ret4.1 = insertelement <4 x float> undef, float %arg14, i32 0
%ret4.1 = insertelement <4 x float> poison, float %arg14, i32 0
%ret4.2 = insertelement <4 x float> %ret4.1, float %extra_arg1, i32 1
%ret4.3 = insertelement <4 x float> %ret4.2, float %extra_arg2, i32 2
@@ -237,7 +237,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_part_unused_extra_used(i3
; CHECK: NumVgprs: 7
define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_part_unused_extra_unused(i32 inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x float> %arg3, <2 x float> %arg4, <2 x float> %arg5, <3 x float> %arg6, <2 x float> %arg7, <2 x float> %arg8, <2 x float> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, i32 %arg15, i32 %arg16, i32 %arg17, i32 %arg18, float %extra_arg1, float %extra_arg2) local_unnamed_addr #0 {
.entry:
%ret4.1 = insertelement <4 x float> undef, float %arg12, i32 0
%ret4.1 = insertelement <4 x float> poison, float %arg12, i32 0
%ret4.2 = insertelement <4 x float> %ret4.1, float %arg13, i32 1
%ret4.3 = insertelement <4 x float> %ret4.2, float %arg14, i32 2
@@ -259,7 +259,7 @@ define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_all_unused_extra_unused(i
; CHECK: NumVgprs: 26
define dllexport amdgpu_ps { <4 x float> } @_amdgpu_ps_all_unused_extra_used_no_packing(i32 inreg %arg, i32 inreg %arg1, i32 inreg %arg2, <2 x float> %arg3, <2 x float> %arg4, <2 x float> %arg5, <3 x float> %arg6, <2 x float> %arg7, <2 x float> %arg8, <2 x float> %arg9, float %arg10, float %arg11, float %arg12, float %arg13, float %arg14, i32 %arg15, i32 %arg16, i32 %arg17, i32 %arg18, float %extra_arg1, float %extra_arg2) local_unnamed_addr #2 {
.entry:
%ret4.1 = insertelement <4 x float> undef, float %extra_arg1, i32 0
%ret4.1 = insertelement <4 x float> poison, float %extra_arg1, i32 0
%ret4.2 = insertelement <4 x float> %ret4.1, float %extra_arg2, i32 1
%ret.res = insertvalue { <4 x float> } poison, <4 x float> %ret4.2, 0
@@ -287,17 +287,17 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%i6 = extractelement <2 x float> %arg8, i32 0
%i7 = extractelement <2 x float> %arg9, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret1.3 = insertelement <4 x float> %ret1.2, float %i4, i32 3
%ret2 = insertelement <4 x float> undef, float %i5, i32 0
%ret2 = insertelement <4 x float> poison, float %i5, i32 0
%ret2.1 = insertelement <4 x float> %ret2, float %i6, i32 1
%ret2.2 = insertelement <4 x float> %ret2.1, float %i7, i32 2
%ret2.3 = insertelement <4 x float> %ret2.2, float %arg10, i32 3
%ret3 = insertelement <4 x float> undef, float %arg11, i32 0
%ret3 = insertelement <4 x float> poison, float %arg11, i32 0
%ret3.1 = insertelement <4 x float> %ret3, float %arg12, i32 1
%ret3.2 = insertelement <4 x float> %ret3.1, float %arg13, i32 2
%ret3.3 = insertelement <4 x float> %ret3.2, float %arg14, i32 3
@@ -305,7 +305,7 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%arg15.f = bitcast i32 %arg15 to float
%arg16.f = bitcast i32 %arg16 to float
%ret4 = insertelement <4 x float> undef, float %extra_arg1, i32 0
%ret4 = insertelement <4 x float> poison, float %extra_arg1, i32 0
%ret4.1 = insertelement <4 x float> %ret4, float %extra_arg2, i32 1
%ret4.2 = insertelement <4 x float> %ret4.1, float %arg15.f, i32 2
%ret4.3 = insertelement <4 x float> %ret4.2, float %arg16.f, i32 3
@@ -331,22 +331,22 @@ define dllexport amdgpu_ps { <4 x float>, <4 x float>, <4 x float>, <4 x float>
%i6 = extractelement <2 x float> %arg8, i32 0
%i7 = extractelement <2 x float> %arg9, i32 1
%ret1 = insertelement <4 x float> undef, float %i1, i32 0
%ret1 = insertelement <4 x float> poison, float %i1, i32 0
%ret1.1 = insertelement <4 x float> %ret1, float %i2, i32 1
%ret1.2 = insertelement <4 x float> %ret1.1, float %i3, i32 2
%ret1.3 = insertelement <4 x float> %ret1.2, float %i4, i32 3
%ret2 = insertelement <4 x float> undef, float %i5, i32 0
%ret2 = insertelement <4 x float> poison, float %i5, i32 0
%ret2.1 = insertelement <4 x float> %ret2, float %i6, i32 1
%ret2.2 = insertelement <4 x float> %ret2.1, float %i7, i32 2
%ret2.3 = insertelement <4 x float> %ret2.2, float %arg10, i32 3
%ret3 = insertelement <4 x float> undef, float %arg11, i32 0
%ret3 = insertelement <4 x float> poison, float %arg11, i32 0
%ret3.1 = insertelement <4 x float> %ret3, float %arg12, i32 1
%ret3.2 = insertelement <4 x float> %ret3.1, float %arg13, i32 2
%ret3.3 = insertelement <4 x float> %ret3.2, float %arg14, i32 3
%ret4 = insertelement <4 x float> undef, float %extra_arg1, i32 0
%ret4 = insertelement <4 x float> poison, float %extra_arg1, i32 0
%ret4.1 = insertelement <4 x float> %ret4, float %extra_arg2, i32 1
%ret.res1 = insertvalue { < 4 x float>, <4 x float>, <4 x float>, <4 x float> } poison, <4 x float> %ret1.3, 0

View File

@@ -42,12 +42,12 @@ main_body:
%17 = fadd float %16, %8
%18 = fmul float %11, %11
%19 = fadd float %18, %0
%20 = insertelement <4 x float> undef, float %13, i32 0
%20 = insertelement <4 x float> poison, float %13, i32 0
%21 = insertelement <4 x float> %20, float %15, i32 1
%22 = insertelement <4 x float> %21, float %17, i32 2
%23 = insertelement <4 x float> %22, float %19, i32 3
%24 = call float @llvm.r600.dot4(<4 x float> %23, <4 x float> %10)
%25 = insertelement <4 x float> undef, float %24, i32 0
%25 = insertelement <4 x float> poison, float %24, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %25, i32 0, i32 2)
ret void
}

View File

@@ -92,11 +92,11 @@ main_body:
%tmp97 = extractelement <4 x float> %tmp96, i32 3
%tmp98 = fmul float %tmp15, %tmp97
%tmp99 = fadd float %tmp98, %tmp83
%tmp100 = insertelement <4 x float> undef, float %tmp16, i32 0
%tmp100 = insertelement <4 x float> poison, float %tmp16, i32 0
%tmp101 = insertelement <4 x float> %tmp100, float %tmp17, i32 1
%tmp102 = insertelement <4 x float> %tmp101, float %tmp18, i32 2
%tmp103 = insertelement <4 x float> %tmp102, float 0.000000e+00, i32 3
%tmp104 = insertelement <4 x float> undef, float %tmp16, i32 0
%tmp104 = insertelement <4 x float> poison, float %tmp16, i32 0
%tmp105 = insertelement <4 x float> %tmp104, float %tmp17, i32 1
%tmp106 = insertelement <4 x float> %tmp105, float %tmp18, i32 2
%tmp107 = insertelement <4 x float> %tmp106, float 0.000000e+00, i32 3
@@ -132,11 +132,11 @@ main_body:
%tmp129 = extractelement <4 x float> %tmp128, i32 1
%tmp130 = load <4 x float>, ptr addrspace(8) getelementptr ([1024 x <4 x float>], ptr addrspace(8) null, i64 0, i32 5)
%tmp131 = extractelement <4 x float> %tmp130, i32 2
%tmp132 = insertelement <4 x float> undef, float %tmp111, i32 0
%tmp132 = insertelement <4 x float> poison, float %tmp111, i32 0
%tmp133 = insertelement <4 x float> %tmp132, float %tmp112, i32 1
%tmp134 = insertelement <4 x float> %tmp133, float %tmp113, i32 2
%tmp135 = insertelement <4 x float> %tmp134, float 0.000000e+00, i32 3
%tmp136 = insertelement <4 x float> undef, float %tmp127, i32 0
%tmp136 = insertelement <4 x float> poison, float %tmp127, i32 0
%tmp137 = insertelement <4 x float> %tmp136, float %tmp129, i32 1
%tmp138 = insertelement <4 x float> %tmp137, float %tmp131, i32 2
%tmp139 = insertelement <4 x float> %tmp138, float 0.000000e+00, i32 3
@@ -147,11 +147,11 @@ main_body:
%tmp144 = extractelement <4 x float> %tmp143, i32 1
%tmp145 = load <4 x float>, ptr addrspace(8) getelementptr ([1024 x <4 x float>], ptr addrspace(8) null, i64 0, i32 7)
%tmp146 = extractelement <4 x float> %tmp145, i32 2
%tmp147 = insertelement <4 x float> undef, float %tmp111, i32 0
%tmp147 = insertelement <4 x float> poison, float %tmp111, i32 0
%tmp148 = insertelement <4 x float> %tmp147, float %tmp112, i32 1
%tmp149 = insertelement <4 x float> %tmp148, float %tmp113, i32 2
%tmp150 = insertelement <4 x float> %tmp149, float 0.000000e+00, i32 3
%tmp151 = insertelement <4 x float> undef, float %tmp142, i32 0
%tmp151 = insertelement <4 x float> poison, float %tmp142, i32 0
%tmp152 = insertelement <4 x float> %tmp151, float %tmp144, i32 1
%tmp153 = insertelement <4 x float> %tmp152, float %tmp146, i32 2
%tmp154 = insertelement <4 x float> %tmp153, float 0.000000e+00, i32 3
@@ -211,12 +211,12 @@ main_body:
%clamp.i4 = call float @llvm.minnum.f32(float %max.0.i3, float 1.000000e+00)
%max.0.i1 = call float @llvm.maxnum.f32(float %tmp204, float 0.000000e+00)
%clamp.i2 = call float @llvm.minnum.f32(float %max.0.i1, float 1.000000e+00)
%tmp205 = insertelement <4 x float> undef, float %tmp87, i32 0
%tmp205 = insertelement <4 x float> poison, float %tmp87, i32 0
%tmp206 = insertelement <4 x float> %tmp205, float %tmp91, i32 1
%tmp207 = insertelement <4 x float> %tmp206, float %tmp95, i32 2
%tmp208 = insertelement <4 x float> %tmp207, float %tmp99, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %tmp208, i32 60, i32 1)
%tmp209 = insertelement <4 x float> undef, float %clamp.i6, i32 0
%tmp209 = insertelement <4 x float> poison, float %clamp.i6, i32 0
%tmp210 = insertelement <4 x float> %tmp209, float %clamp.i4, i32 1
%tmp211 = insertelement <4 x float> %tmp210, float %clamp.i2, i32 2
%tmp212 = insertelement <4 x float> %tmp211, float %clamp.i8, i32 3

View File

@@ -15,7 +15,7 @@ entry:
%r0 = extractelement <4 x float> %reg0, i32 0
%r1 = extractelement <4 x float> %reg0, i32 1
%r2 = fmul float %r0, %r1
%vec = insertelement <4 x float> undef, float %r2, i32 0
%vec = insertelement <4 x float> poison, float %r2, i32 0
call void @llvm.r600.store.swizzle(<4 x float> %vec, i32 0, i32 0)
ret void
}

View File

@@ -125,42 +125,42 @@ main_body:
%79 = extractelement <4 x float> %78, i32 1
%80 = load <4 x float>, ptr addrspace(8) getelementptr ([1024 x <4 x float>], ptr addrspace(8) null, i64 0, i32 3)
%81 = extractelement <4 x float> %80, i32 2
%82 = insertelement <4 x float> undef, float %51, i32 0
%82 = insertelement <4 x float> poison, float %51, i32 0
%83 = insertelement <4 x float> %82, float %55, i32 1
%84 = insertelement <4 x float> %83, float %59, i32 2
%85 = insertelement <4 x float> %84, float %63, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %85, i32 60, i32 1)
%86 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%86 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%87 = insertelement <4 x float> %86, float 0.000000e+00, i32 1
%88 = insertelement <4 x float> %87, float 0.000000e+00, i32 2
%89 = insertelement <4 x float> %88, float 0.000000e+00, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %89, i32 0, i32 2)
%90 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%90 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%91 = insertelement <4 x float> %90, float 0.000000e+00, i32 1
%92 = insertelement <4 x float> %91, float 0.000000e+00, i32 2
%93 = insertelement <4 x float> %92, float 0.000000e+00, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %93, i32 1, i32 2)
%94 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%94 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%95 = insertelement <4 x float> %94, float %65, i32 1
%96 = insertelement <4 x float> %95, float %67, i32 2
%97 = insertelement <4 x float> %96, float %69, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %97, i32 2, i32 2)
%98 = insertelement <4 x float> undef, float %77, i32 0
%98 = insertelement <4 x float> poison, float %77, i32 0
%99 = insertelement <4 x float> %98, float %79, i32 1
%100 = insertelement <4 x float> %99, float %81, i32 2
%101 = insertelement <4 x float> %100, float %71, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %101, i32 3, i32 2)
%102 = insertelement <4 x float> undef, float %73, i32 0
%102 = insertelement <4 x float> poison, float %73, i32 0
%103 = insertelement <4 x float> %102, float %75, i32 1
%104 = insertelement <4 x float> %103, float 0.000000e+00, i32 2
%105 = insertelement <4 x float> %104, float 0.000000e+00, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %105, i32 4, i32 2)
%106 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%106 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%107 = insertelement <4 x float> %106, float 0.000000e+00, i32 1
%108 = insertelement <4 x float> %107, float 0.000000e+00, i32 2
%109 = insertelement <4 x float> %108, float 0.000000e+00, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %109, i32 5, i32 2)
%110 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%110 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%111 = insertelement <4 x float> %110, float 0.000000e+00, i32 1
%112 = insertelement <4 x float> %111, float 0.000000e+00, i32 2
%113 = insertelement <4 x float> %112, float 0.000000e+00, i32 3

View File

@@ -6,7 +6,7 @@ main_body:
%tmp2 = extractelement <4 x float> %arg, i32 1
%tmp3 = extractelement <4 x float> %arg, i32 2
%tmp4 = extractelement <4 x float> %arg, i32 3
%tmp5 = insertelement <4 x float> undef, float %tmp, i32 0
%tmp5 = insertelement <4 x float> poison, float %tmp, i32 0
%tmp6 = insertelement <4 x float> %tmp5, float %tmp2, i32 1
%tmp7 = insertelement <4 x float> %tmp6, float %tmp3, i32 2
%tmp8 = insertelement <4 x float> %tmp7, float %tmp4, i32 3
@@ -21,7 +21,7 @@ main_body:
%tmp17 = fadd float %tmp16, 1.500000e+00
%tmp18 = fmul float %tmp11, %tmp15
%tmp19 = fadd float %tmp18, 1.500000e+00
%tmp20 = insertelement <4 x float> undef, float %tmp19, i32 0
%tmp20 = insertelement <4 x float> poison, float %tmp19, i32 0
%tmp21 = insertelement <4 x float> %tmp20, float %tmp17, i32 1
%tmp22 = insertelement <4 x float> %tmp21, float %tmp13, i32 2
%tmp23 = insertelement <4 x float> %tmp22, float %tmp4, i32 3
@@ -29,14 +29,14 @@ main_body:
%tmp25 = extractelement <4 x float> %tmp23, i32 1
%tmp26 = extractelement <4 x float> %tmp23, i32 2
%tmp27 = extractelement <4 x float> %tmp23, i32 3
%tmp28 = insertelement <4 x float> undef, float %tmp24, i32 0
%tmp28 = insertelement <4 x float> poison, float %tmp24, i32 0
%tmp29 = insertelement <4 x float> %tmp28, float %tmp25, i32 1
%tmp30 = insertelement <4 x float> %tmp29, float %tmp26, i32 2
%tmp31 = insertelement <4 x float> %tmp30, float %tmp27, i32 3
%tmp32 = shufflevector <4 x float> %tmp31, <4 x float> %tmp31, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
%tmp33 = call <4 x float> @llvm.r600.texc(<4 x float> %tmp32, i32 0, i32 0, i32 0, i32 16, i32 0, i32 1, i32 1, i32 1, i32 1)
%tmp34 = extractelement <4 x float> %tmp33, i32 0
%tmp35 = insertelement <4 x float> undef, float %tmp34, i32 0
%tmp35 = insertelement <4 x float> poison, float %tmp34, i32 0
%tmp36 = insertelement <4 x float> %tmp35, float %tmp34, i32 1
%tmp37 = insertelement <4 x float> %tmp36, float %tmp34, i32 2
%tmp38 = insertelement <4 x float> %tmp37, float 1.000000e+00, i32 3

View File

@@ -28,27 +28,27 @@ LOOP: ; preds = %LOOP47, %main_body
br i1 %15, label %IF41, label %ENDIF40
IF41: ; preds = %LOOP
%16 = insertelement <4 x float> undef, float %0, i32 0
%16 = insertelement <4 x float> poison, float %0, i32 0
%17 = insertelement <4 x float> %16, float %temp8.0, i32 1
%18 = insertelement <4 x float> %17, float %temp12.0, i32 2
%19 = insertelement <4 x float> %18, float 0.000000e+00, i32 3
call void @llvm.r600.store.stream.output(<4 x float> %19, i32 0, i32 0, i32 1)
%20 = insertelement <4 x float> undef, float %0, i32 0
%20 = insertelement <4 x float> poison, float %0, i32 0
%21 = insertelement <4 x float> %20, float %temp8.0, i32 1
%22 = insertelement <4 x float> %21, float %temp12.0, i32 2
%23 = insertelement <4 x float> %22, float 0.000000e+00, i32 3
call void @llvm.r600.store.stream.output(<4 x float> %23, i32 0, i32 0, i32 2)
%24 = insertelement <4 x float> undef, float %0, i32 0
%24 = insertelement <4 x float> poison, float %0, i32 0
%25 = insertelement <4 x float> %24, float %temp8.0, i32 1
%26 = insertelement <4 x float> %25, float %temp12.0, i32 2
%27 = insertelement <4 x float> %26, float 0.000000e+00, i32 3
call void @llvm.r600.store.stream.output(<4 x float> %27, i32 0, i32 0, i32 4)
%28 = insertelement <4 x float> undef, float 0.000000e+00, i32 0
%28 = insertelement <4 x float> poison, float 0.000000e+00, i32 0
%29 = insertelement <4 x float> %28, float 0.000000e+00, i32 1
%30 = insertelement <4 x float> %29, float 0.000000e+00, i32 2
%31 = insertelement <4 x float> %30, float 0.000000e+00, i32 3
call void @llvm.r600.store.swizzle(<4 x float> %31, i32 60, i32 1)
%32 = insertelement <4 x float> undef, float %0, i32 0
%32 = insertelement <4 x float> poison, float %0, i32 0
%33 = insertelement <4 x float> %32, float %temp8.0, i32 1
%34 = insertelement <4 x float> %33, float %temp12.0, i32 2
%35 = insertelement <4 x float> %34, float 0.000000e+00, i32 3

Some files were not shown because too many files have changed in this diff Show More