@@ -1062,10 +1062,10 @@ define { <3 x i32>, i32 } @v3i32_struct_func_void_wasted_reg() #0 {
1062
1062
; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1063
1063
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1064
1064
; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
1065
- ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1066
- ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1067
- ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1068
- ; CHECK-NEXT: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1065
+ ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1066
+ ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1067
+ ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1068
+ ; CHECK-NEXT: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1069
1069
; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[DEF1]], [[LOAD]](s32), [[C]](s32)
1070
1070
; CHECK-NEXT: [[IVEC1:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[IVEC]], [[LOAD1]](s32), [[C1]](s32)
1071
1071
; CHECK-NEXT: [[IVEC2:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[IVEC1]], [[LOAD2]](s32), [[C2]](s32)
@@ -1075,10 +1075,10 @@ define { <3 x i32>, i32 } @v3i32_struct_func_void_wasted_reg() #0 {
1075
1075
; CHECK-NEXT: $vgpr2 = COPY [[UV2]](s32)
1076
1076
; CHECK-NEXT: $vgpr3 = COPY [[LOAD3]](s32)
1077
1077
; CHECK-NEXT: SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3
1078
- %load0 = load volatile i32 , ptr addrspace (3 ) undef
1079
- %load1 = load volatile i32 , ptr addrspace (3 ) undef
1080
- %load2 = load volatile i32 , ptr addrspace (3 ) undef
1081
- %load3 = load volatile i32 , ptr addrspace (3 ) undef
1078
+ %load0 = load volatile i32 , ptr addrspace (3 ) poison
1079
+ %load1 = load volatile i32 , ptr addrspace (3 ) poison
1080
+ %load2 = load volatile i32 , ptr addrspace (3 ) poison
1081
+ %load3 = load volatile i32 , ptr addrspace (3 ) poison
1082
1082
1083
1083
%insert.0 = insertelement <3 x i32 > poison, i32 %load0 , i32 0
1084
1084
%insert.1 = insertelement <3 x i32 > %insert.0 , i32 %load1 , i32 1
@@ -1097,10 +1097,10 @@ define { <3 x float>, i32 } @v3f32_struct_func_void_wasted_reg() #0 {
1097
1097
; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1098
1098
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1099
1099
; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
1100
- ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1101
- ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1102
- ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1103
- ; CHECK-NEXT: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) undef `, addrspace 3)
1100
+ ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1101
+ ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1102
+ ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1103
+ ; CHECK-NEXT: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p3) :: (volatile load (s32) from `ptr addrspace(3) poison `, addrspace 3)
1104
1104
; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[DEF1]], [[LOAD]](s32), [[C]](s32)
1105
1105
; CHECK-NEXT: [[IVEC1:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[IVEC]], [[LOAD1]](s32), [[C1]](s32)
1106
1106
; CHECK-NEXT: [[IVEC2:%[0-9]+]]:_(<3 x s32>) = G_INSERT_VECTOR_ELT [[IVEC1]], [[LOAD2]](s32), [[C2]](s32)
@@ -1110,10 +1110,10 @@ define { <3 x float>, i32 } @v3f32_struct_func_void_wasted_reg() #0 {
1110
1110
; CHECK-NEXT: $vgpr2 = COPY [[UV2]](s32)
1111
1111
; CHECK-NEXT: $vgpr3 = COPY [[LOAD3]](s32)
1112
1112
; CHECK-NEXT: SI_RETURN implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3
1113
- %load0 = load volatile float , ptr addrspace (3 ) undef
1114
- %load1 = load volatile float , ptr addrspace (3 ) undef
1115
- %load2 = load volatile float , ptr addrspace (3 ) undef
1116
- %load3 = load volatile i32 , ptr addrspace (3 ) undef
1113
+ %load0 = load volatile float , ptr addrspace (3 ) poison
1114
+ %load1 = load volatile float , ptr addrspace (3 ) poison
1115
+ %load2 = load volatile float , ptr addrspace (3 ) poison
1116
+ %load3 = load volatile i32 , ptr addrspace (3 ) poison
1117
1117
1118
1118
%insert.0 = insertelement <3 x float > poison, float %load0 , i32 0
1119
1119
%insert.1 = insertelement <3 x float > %insert.0 , float %load1 , i32 1
@@ -1137,19 +1137,19 @@ define void @void_func_sret_max_known_zero_bits(ptr addrspace(5) sret(i8) %arg0)
1137
1137
; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C]](s32)
1138
1138
; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C1]](s32)
1139
1139
; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C2]](s32)
1140
- ; CHECK-NEXT: G_STORE [[LSHR]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) undef `, addrspace 3)
1141
- ; CHECK-NEXT: G_STORE [[LSHR1]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) undef `, addrspace 3)
1142
- ; CHECK-NEXT: G_STORE [[LSHR2]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) undef `, addrspace 3)
1140
+ ; CHECK-NEXT: G_STORE [[LSHR]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) poison `, addrspace 3)
1141
+ ; CHECK-NEXT: G_STORE [[LSHR1]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) poison `, addrspace 3)
1142
+ ; CHECK-NEXT: G_STORE [[LSHR2]](s32), [[DEF]](p3) :: (volatile store (s32) into `ptr addrspace(3) poison `, addrspace 3)
1143
1143
; CHECK-NEXT: SI_RETURN
1144
1144
%arg0.int = ptrtoint ptr addrspace (5 ) %arg0 to i32
1145
1145
1146
1146
%lshr0 = lshr i32 %arg0.int , 16
1147
1147
%lshr1 = lshr i32 %arg0.int , 17
1148
1148
%lshr2 = lshr i32 %arg0.int , 18
1149
1149
1150
- store volatile i32 %lshr0 , ptr addrspace (3 ) undef
1151
- store volatile i32 %lshr1 , ptr addrspace (3 ) undef
1152
- store volatile i32 %lshr2 , ptr addrspace (3 ) undef
1150
+ store volatile i32 %lshr0 , ptr addrspace (3 ) poison
1151
+ store volatile i32 %lshr1 , ptr addrspace (3 ) poison
1152
+ store volatile i32 %lshr2 , ptr addrspace (3 ) poison
1153
1153
ret void
1154
1154
}
1155
1155
0 commit comments