@@ -1939,3 +1939,39 @@ func.func @test_mul_out_i16(%arg0: tensor<13x21x3xi8>, %arg1: tensor<13x1x3xi8>,
19391939 %0 = tosa.mul %arg0 , %arg1 , %shift : (tensor <13 x21 x3 xi8 >, tensor <13 x1 x3 xi8 >, tensor <1 xi8 >) -> tensor <13 x21 x3 xi16 >
19401940 return %0 : tensor <13 x21 x3 xi16 >
19411941}
1942+
1943+ // -----
1944+
1945+ // CHECK-LABEL: test_clamp_nan_min_val
1946+ func.func @test_clamp_nan_min_val (%arg0: tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 > {
1947+ // expected-error@+1 {{'tosa.clamp' op min/max attributes should not be 'NaN', got min_val=0xFFFFFFFF : f32, max_val=1.000000e+00 : f32}}
1948+ %0 = tosa.clamp %arg0 {min_val = 0xFFFFFFFF : f32 , max_val = 1.0 : f32 } : (tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 >
1949+ return %0 : tensor <13 x21 x3 xf32 >
1950+ }
1951+
1952+ // -----
1953+
1954+ // CHECK-LABEL: test_clamp_nan_max_val
1955+ func.func @test_clamp_nan_max_val (%arg0: tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 > {
1956+ // expected-error@+1 {{'tosa.clamp' op min/max attributes should not be 'NaN', got min_val=2.300000e+00 : f32, max_val=0x7FFFFFFF : f32}}
1957+ %0 = tosa.clamp %arg0 {min_val = 2.3 : f32 , max_val = 0x7FFFFFFF : f32 } : (tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 >
1958+ return %0 : tensor <13 x21 x3 xf32 >
1959+ }
1960+
1961+ // -----
1962+
1963+ // CHECK-LABEL: test_clamp_min_larger_than_max_int8
1964+ func.func @test_clamp_min_larger_than_max_int8 (%arg0: tensor <13 x21 x3 xi8 >) -> tensor <13 x21 x3 xi8 > {
1965+ // expected-error@+1 {{'tosa.clamp' op expected min_val <= max_val, got min_val=127 : i8, max_val=-128 : i8}}
1966+ %0 = tosa.clamp %arg0 {min_val = 127 : i8 , max_val = -128 : i8 } : (tensor <13 x21 x3 xi8 >) -> tensor <13 x21 x3 xi8 >
1967+ return %0 : tensor <13 x21 x3 xi8 >
1968+ }
1969+
1970+ // -----
1971+
1972+ // CHECK-LABEL: test_clamp_min_larger_than_max_fp32
1973+ func.func @test_clamp_min_larger_than_max_fp32 (%arg0: tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 > {
1974+ // expected-error@+1 {{'tosa.clamp' op expected min_val <= max_val, got min_val=2.000000e+00 : f32, max_val=-1.100000e+00 : f32}}
1975+ %0 = tosa.clamp %arg0 {min_val = 2.0 : f32 , max_val = -1.1 : f32 } : (tensor <13 x21 x3 xf32 >) -> tensor <13 x21 x3 xf32 >
1976+ return %0 : tensor <13 x21 x3 xf32 >
1977+ }
0 commit comments