@@ -967,17 +967,17 @@ func.func @umod_fold(%arg0: i32) -> (i32, i32) {
967967 return %0 , %1: i32 , i32
968968}
969969
970- // CHECK-LABEL: @umod_fail_vector_fold
970+ // CHECK-LABEL: @umod_vector_fold
971971// CHECK-SAME: (%[[ARG:.*]]: vector<4xi32>)
972- func.func @umod_fail_vector_fold (%arg0: vector <4 xi32 >) -> (vector <4 xi32 >, vector <4 xi32 >) {
972+ func.func @umod_vector_fold (%arg0: vector <4 xi32 >) -> (vector <4 xi32 >, vector <4 xi32 >) {
973973 // CHECK: %[[CONST4:.*]] = spirv.Constant dense<4> : vector<4xi32>
974974 // CHECK: %[[CONST32:.*]] = spirv.Constant dense<32> : vector<4xi32>
975975 %const1 = spirv.Constant dense <32 > : vector <4 xi32 >
976976 %0 = spirv.UMod %arg0 , %const1 : vector <4 xi32 >
977- // CHECK: %[[UMOD0:.*]] = spirv.UMod %[[ARG]], %[[CONST32]]
978977 %const2 = spirv.Constant dense <4 > : vector <4 xi32 >
979978 %1 = spirv.UMod %0 , %const2 : vector <4 xi32 >
980- // CHECK: %[[UMOD1:.*]] = spirv.UMod %[[UMOD0]], %[[CONST4]]
979+ // CHECK: %[[UMOD0:.*]] = spirv.UMod %[[ARG]], %[[CONST32]]
980+ // CHECK: %[[UMOD1:.*]] = spirv.UMod %[[ARG]], %[[CONST4]]
981981 // CHECK: return %[[UMOD0]], %[[UMOD1]]
982982 return %0 , %1: vector <4 xi32 >, vector <4 xi32 >
983983}
@@ -996,9 +996,9 @@ func.func @umod_fold_same_divisor(%arg0: i32) -> (i32, i32) {
996996 return %0 , %1: i32 , i32
997997}
998998
999- // CHECK-LABEL: @umod_fail_fold
999+ // CHECK-LABEL: @umod_fail_1_fold
10001000// CHECK-SAME: (%[[ARG:.*]]: i32)
1001- func.func @umod_fail_fold (%arg0: i32 ) -> (i32 , i32 ) {
1001+ func.func @umod_fail_1_fold (%arg0: i32 ) -> (i32 , i32 ) {
10021002 // CHECK: %[[CONST5:.*]] = spirv.Constant 5
10031003 // CHECK: %[[CONST32:.*]] = spirv.Constant 32
10041004 %const1 = spirv.Constant 32 : i32
@@ -1011,6 +1011,21 @@ func.func @umod_fail_fold(%arg0: i32) -> (i32, i32) {
10111011 return %0 , %1: i32 , i32
10121012}
10131013
1014+ // CHECK-LABEL: @umod_fail_2_fold
1015+ // CHECK-SAME: (%[[ARG:.*]]: vector<4xi32>)
1016+ func.func @umod_fail_2_fold (%arg0: vector <4 xi32 >) -> (vector <4 xi32 >, vector <4 xi32 >) {
1017+ // CHECK: %[[CONST32:.*]] = spirv.Constant dense<32> : vector<4xi32>
1018+ // CHECK: %[[CONST4:.*]] = spirv.Constant dense<4> : vector<4xi32>
1019+ %const1 = spirv.Constant dense <4 > : vector <4 xi32 >
1020+ %0 = spirv.UMod %arg0 , %const1 : vector <4 xi32 >
1021+ // CHECK: %[[UMOD0:.*]] = spirv.UMod %[[ARG]], %[[CONST4]]
1022+ %const2 = spirv.Constant dense <32 > : vector <4 xi32 >
1023+ %1 = spirv.UMod %0 , %const2 : vector <4 xi32 >
1024+ // CHECK: %[[UMOD1:.*]] = spirv.UMod %[[UMOD0]], %[[CONST32]]
1025+ // CHECK: return %[[UMOD0]], %[[UMOD1]]
1026+ return %0 , %1: vector <4 xi32 >, vector <4 xi32 >
1027+ }
1028+
10141029// -----
10151030
10161031//===----------------------------------------------------------------------===//
0 commit comments