@@ -339,6 +339,46 @@ def test_add_conv_residual_u85_INT(test_data: input_t1):
339339 pipeline .run ()
340340
341341
342+ class AddDualConv (torch .nn .Module ):
343+ """Conv1(x) + conv2(x) — both inputs have Rescale producers."""
344+
345+ def __init__ (self ):
346+ super ().__init__ ()
347+ self .conv1 = torch .nn .Conv2d (3 , 3 , 1 , bias = False )
348+ self .conv2 = torch .nn .Conv2d (3 , 3 , 1 , bias = False )
349+
350+ def forward (self , x ):
351+ return self .conv1 (x ) + self .conv2 (x )
352+
353+ test_data = {
354+ "4d_randn" : lambda : (torch .randn (1 , 3 , 4 , 4 ),),
355+ }
356+
357+
358+ @common .parametrize ("test_data" , AddDualConv .test_data )
359+ def test_add_dual_conv_tosa_INT (test_data : input_t1 ):
360+ pipeline = TosaPipelineINT [input_t1 ](AddDualConv (), test_data (), aten_op , exir_op )
361+ pipeline .run ()
362+
363+
364+ @common .parametrize ("test_data" , AddDualConv .test_data )
365+ @common .XfailIfNoCorstone300
366+ def test_add_dual_conv_u55_INT (test_data : input_t1 ):
367+ pipeline = EthosU55PipelineINT [input_t1 ](
368+ AddDualConv (), test_data (), aten_op , exir_op
369+ )
370+ pipeline .run ()
371+
372+
373+ @common .parametrize ("test_data" , AddDualConv .test_data )
374+ @common .XfailIfNoCorstone320
375+ def test_add_dual_conv_u85_INT (test_data : input_t1 ):
376+ pipeline = EthosU85PipelineINT [input_t1 ](
377+ AddDualConv (), test_data (), aten_op , exir_op
378+ )
379+ pipeline .run ()
380+
381+
342382@common .parametrize ("test_data" , Add .test_data )
343383def test_add_tensor_tosa_INT_16a8w (test_data : input_t1 ):
344384 """Test add operation with 16A8W quantization (16-bit activations, 8-bit
0 commit comments