[reference model] Add shape operators

- fixed up reshape conformance tests to use shape input instead of attribute
- fixed up tile conformance tests to use shape input instead of attribute
- fixed output and output rank of dim op
- allow rank 0 and rank 1 tensors for tosa.shape values (for shape = {})
- added initialization of rank 0 const_shape tensors (for shape = {})
- Update conformance tests to use new rescale attributes

Signed-off-by: Tai Ly <tai.ly@arm.com>
Signed-off-by: Won Jeon <won.jeon@arm.com>
Change-Id: I6cce0d2a9ab066fe20a2abf9d2cfde3eb3d8c18b
diff --git a/reference_model/src/tensor.h b/reference_model/src/tensor.h
index 5bcd1b2..cd71f9f 100644
--- a/reference_model/src/tensor.h
+++ b/reference_model/src/tensor.h
@@ -1,5 +1,5 @@
 
-// Copyright (c) 2020-2023, ARM Limited.
+// Copyright (c) 2020-2024, ARM Limited.
 //
 //    Licensed under the Apache License, Version 2.0 (the "License");
 //    you may not use this file except in compliance with the License.
@@ -855,8 +855,16 @@
                 }
                 break;
             case TOSA_REF_TYPE_SHAPE:
-                assert(rank == 0);
-                return new Tensor0<int64_t>(tensorName_, dtype_, shape_);
+                switch (rank)
+                {
+                    case 0:
+                        return new Tensor0<int64_t>(tensorName_, dtype_, shape_);
+                    case 1:
+                        return new Tensor1<int64_t>(tensorName_, dtype_, shape_);
+                    default:
+                        assert(0);    // shape tensors must have rank of 0 or 1
+                }
+                break;
             case TOSA_REF_TYPE_BOOL:
                 switch (rank)
                 {