Home
last modified time | relevance | path

Searched refs:box (Results 1 – 25 of 126) sorted by relevance

123456

/llvm-project-15.0.7/polly/lib/External/isl/
H A Disl_box.c37 if (!box) in isl_fixed_box_free()
41 free(box); in isl_fixed_box_free()
57 if (!box) in isl_fixed_box_alloc()
103 if (!box) in isl_fixed_box_set_extent()
108 if (!box->offset || !box->size) in isl_fixed_box_set_extent()
140 if (!box) in isl_fixed_box_invalidate()
154 if (!box->offset || !box->size) in isl_fixed_box_invalidate()
359 box = isl_fixed_box_free(box); in set_dim_extent()
363 box = isl_fixed_box_free(box); in set_dim_extent()
368 box = isl_fixed_box_invalidate(box); in set_dim_extent()
[all …]
/llvm-project-15.0.7/flang/lib/Optimizer/Builder/
H A DBoxValue.cpp76 [](const fir::BoxValue &box) { return box.hasRank(); }, in isArray() argument
77 [](const fir::MutableBoxValue &box) { return box.hasRank(); }, in isArray() argument
83 return os << "boxchar { addr: " << box.getAddr() << ", len: " << box.getLen() in operator <<()
90 if (box.getLBounds().size()) { in operator <<()
104 os << "boxchararray { addr: " << box.getAddr() << ", len : " << box.getLen(); in operator <<()
126 if (box.lbounds.size()) { in operator <<()
136 if (!box.extents.empty()) { in operator <<()
147 if (!box.lenParams.empty()) { in operator <<()
189 if (!box) in verify()
242 return !box.getExtents().empty() && isUndefOp(box.getExtents().back()); in isAssumedSize()
[all …]
H A DMutableBox.cpp100 : builder{builder}, loc{loc}, box{box} { in MutablePropertyReader()
165 if (box.isCharacter()) in read()
197 : builder{builder}, loc{loc}, box{box} {} in MutablePropertyWriter()
237 builder, loc, box.getBoxTy(), box.nonDeferredLenParams()); in setUnallocatedStatus()
365 auto box = in createTempMutableBox() local
369 return box; in createTempMutableBox()
382 if ((box.isDerived() && mayBePolymorphic) || box.isUnlimitedPolymorphic()) in readToBoxValue()
386 if (box.isAllocatable() || box.rank() == 0) in readToBoxValue()
741 if (box.hasRank()) in genReallocIfNeeded()
768 if (box.isCharacter() && !box.hasNonDeferredLenParams()) { in genReallocIfNeeded()
[all …]
H A DFIRBuilder.cpp388 [&](const fir::ArrayBoxValue &box) { return genShape(loc, box); }, in createShape() argument
438 return fullShape(box.getLBounds(), box.getExtents()); in createSlice()
441 return fullShape(box.getLBounds(), box.getExtents()); in createSlice()
549 return box.match( in readCharLen()
576 return box.match( in readExtent()
655 return box.match( in getExtents()
675 assert(!box.isUnlimitedPolymorphic() && !box.hasAssumedRank() && in readBoxValue()
678 builder.create<fir::BoxAddrOp>(loc, box.getMemTy(), box.getAddr()); in readBoxValue()
708 return {box.getLBounds().begin(), box.getLBounds().end()}; in getNonDefaultLowerBounds()
786 [&](const fir::BoxValue &box) { return handleBoxed(box); }, in getTypeParams() argument
[all …]
/llvm-project-15.0.7/polly/lib/External/isl/include/isl/
H A Dfixed_box.h20 isl_ctx *isl_fixed_box_get_ctx(__isl_keep isl_fixed_box *box);
22 __isl_give isl_space *isl_fixed_box_get_space(__isl_keep isl_fixed_box *box);
24 isl_bool isl_fixed_box_is_valid(__isl_keep isl_fixed_box *box);
27 __isl_keep isl_fixed_box *box);
29 __isl_give isl_multi_val *isl_fixed_box_get_size(__isl_keep isl_fixed_box *box);
31 __isl_give isl_fixed_box *isl_fixed_box_copy(__isl_keep isl_fixed_box *box);
32 __isl_null isl_fixed_box *isl_fixed_box_free(__isl_take isl_fixed_box *box);
35 __isl_take isl_printer *p, __isl_keep isl_fixed_box *box);
36 __isl_give char *isl_fixed_box_to_str(__isl_keep isl_fixed_box *box);
37 void isl_fixed_box_dump(__isl_keep isl_fixed_box *box);
/llvm-project-15.0.7/flang/test/Fir/
H A Dabstract-results.fir27 // CHECK-BOX-SAME: %[[box:.*]]: !fir.box<!fir.array<?xf32>>, %[[n:.*]]: index) {
52 // CHECK-BOX-SAME: %[[box:.*]]: !fir.box<!fir.type<t{x:f32}>>, %[[v:.*]]: f32) {
78 return %res : !fir.box<!fir.heap<f64>>
79 // CHECK: %[[box:.*]] = fir.embox %{{.*}} : (!fir.heap<f64>) -> !fir.box<!fir.heap<f64>>
80 // CHECK: fir.store %[[box]] to %[[buffer]] : !fir.ref<!fir.box<!fir.heap<f64>>>
83 // CHECK-BOX: %[[box:.*]] = fir.embox %{{.*}} : (!fir.heap<f64>) -> !fir.box<!fir.heap<f64>>
84 // CHECK-BOX: fir.store %[[box]] to %[[buffer]] : !fir.ref<!fir.box<!fir.heap<f64>>>
109 …// CHECK-BOX: fir.call @arrayfunc_callee(%[[box]], %[[c100]]) : (!fir.box<!fir.array<?xf32>>, inde…
129 …// CHECK-BOX: fir.call @derivedfunc_callee(%[[box]], %[[cst]]) : (!fir.box<!fir.type<t{x:f32}>>, f…
163 fir.save_result %res to %buffer: !fir.box<!fir.heap<f64>>, !fir.ref<!fir.box<!fir.heap<f64>>>
[all …]
H A Dcg-ops.fir10box:.*]] = fircg.ext_embox %[[arg]](%[[zero]]) origin %[[zero]][%[[zero]], %[[zero]], %[[zero]]] :…
11 …] : (!fir.ref<!fir.array<?xi32>>, !fir.shapeshift<1>, !fir.slice<1>) -> !fir.box<!fir.array<?xi32>>
14 …// CHECK: fircg.ext_rebox %[[box]](%[[zero]]) origin %[[zero]] : (!fir.box<!fir.array<?xi32>>, ind…
15 …%5 = fir.rebox %3(%1) : (!fir.box<!fir.array<?xi32>>, !fir.shapeshift<1>) -> !fir.box<!fir.array<?…
22 fir.global @box_global : !fir.box<!fir.array<?xi32>> {
30 …] : (!fir.ref<!fir.array<?xi32>>, !fir.shapeshift<1>, !fir.slice<1>) -> !fir.box<!fir.array<?xi32>>
31 fir.has_value %3 : !fir.box<!fir.array<?xi32>>
45box:.*]] = fircg.ext_embox %[[arg]](%[[zero]]) origin %[[zero]][%[[zero]], %[[zero]], %[[zero]]] s…
56 func.func @codegen(%addr : !fir.box<!fir.array<?xf32>>) {
62 …%2 = fir.rebox %addr(%1) [%0] : (!fir.box<!fir.array<?xf32>>, !fir.shift<1>, !fir.slice<1>) -> !fi…
[all …]
H A Dbox.fir5 fir.global internal @globalx : !fir.box<!fir.heap<i32>> {
9 fir.has_value %1 : !fir.box<!fir.heap<i32>>
22 func.func private @g(%b : !fir.box<f32>)
32 %b = fir.embox %a : (!fir.ref<f32>) -> !fir.box<f32>
35 fir.call @g(%b) : (!fir.box<f32>) -> ()
64 return %x : !fir.box<!fir.char<1,?>>
78 return %2 : !fir.box<!fir.array<?x!fir.char<1,5>>>
112 // Storing a fir.box into a fir.ref<fir.box> (modifying descriptors).
115 func.func @b5(%arg0 : !fir.ref<!fir.box<!fir.heap<!fir.array<?x?xf32>>>>, %arg1 : !fir.box<!fir.hea…
122 func.func private @callee6(!fir.box<none>) -> i32
[all …]
H A Darray-value-copy-3.fir9 !t_with_alloc_comp = !fir.type<t{i:!fir.box<!fir.heap<!fir.array<?xi32>>>}>
12 %0 = fir.alloca !fir.box<!t_with_alloc_comp>
34 // CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<!fir.array<10x!fir.type<t{i:!fir.box<!fir.heap<!fir.array<?…
40 // CHECK: %[[VAL_11:.*]] = fir.allocmem !fir.array<10x!fir.type<t{i:!fir.box<!fir.heap<!fir.array…
41 …0x!fir.type<t{i:!fir.box<!fir.heap<!fir.array<?xi32>>>}>>>, !fir.shape<1>) -> !fir.box<!fir.ref<!f…
42 …convert %[[VAL_12]] : (!fir.box<!fir.ref<!fir.array<10x!fir.type<t{i:!fir.box<!fir.heap<!fir.array…
43 // CHECK: fir.call @_FortranAInitialize(%[[VAL_16]], %{{.*}}, %{{.*}}) : (!fir.box<none>, !fir.re…
53 …convert %[[VAL_12]] : (!fir.box<!fir.ref<!fir.array<10x!fir.type<t{i:!fir.box<!fir.heap<!fir.array…
54 // CHECK: %[[VAL_73:.*]] = fir.call @_FortranADestroy(%[[VAL_72]]) : (!fir.box<none>) -> none
H A Dcoordinateof.fir26 func.func @foo3(%box : !fir.box<!fir.array<?xi32>>, %i : i32) -> i32 {
36 %1 = fir.coordinate_of %box, %ii : (!fir.box<!fir.array<?xi32>>, index) -> !fir.ref<i32>
56 func.func @foo5(%box : !fir.box<!fir.ptr<!fir.array<?xi32>>>, %i : index) -> i32 {
58 %1 = fir.coordinate_of %box, %i : (!fir.box<!fir.ptr<!fir.array<?xi32>>>, index) -> !fir.ref<i32>
65 // CHECK-SAME: (ptr %[[box:.*]], i64 %{{.*}}, ptr %{{.*}})
66 func.func @foo6(%box : !fir.box<!fir.ptr<!fir.array<?x!fir.char<1>>>>, %i : i64 , %res : !fir.ref<!…
67 ….*]] = getelementptr { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %[[box]], i32 0, i32 0
69 …= getelementptr { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %[[box]], i32 0, i32 7, i6…
74 …%coor = fir.coordinate_of %box, %i : (!fir.box<!fir.ptr<!fir.array<?x!fir.char<1>>>>, i64) -> !fir…
H A Dtype-descriptor.fir7 !sometype = !fir.type<_QFfooTsometype{num:i32,values:!fir.box<!fir.ptr<!fir.array<?x?xf32>>>}>
10 fir.global internal @_QFfooEx : !fir.box<!fir.heap<!sometype>> {
12 %1 = fir.embox %0 : (!fir.heap<!sometype>) -> !fir.box<!fir.heap<!sometype>>
13 fir.has_value %1 : !fir.box<!fir.heap<!sometype>>
19 !some_pdt_type = !fir.type<_QFfooTsome_pdt_typeK42K43{num:i32,values:!fir.box<!fir.ptr<!fir.array<?…
22 fir.global internal @_QFfooEx2 : !fir.box<!fir.heap<!some_pdt_type>> {
24 %1 = fir.embox %0 : (!fir.heap<!some_pdt_type>) -> !fir.box<!fir.heap<!some_pdt_type>>
25 fir.has_value %1 : !fir.box<!fir.heap<!some_pdt_type>>
H A Drebox.fir4 // Test applying slice on fir.box
10 func.func private @bar1(!fir.box<!fir.array<?xf32>>)
13 func.func @test_rebox_1(%arg0: !fir.box<!fir.array<?x?xf32>>) {
39 …%2 = fir.rebox %arg0(%1) [%0] : (!fir.box<!fir.array<?x?xf32>>, !fir.shift<2>, !fir.slice<2>) -> !…
41 fir.call @bar1(%2) : (!fir.box<!fir.array<?xf32>>) -> ()
64 …%1 = fir.rebox %arg0 [%0] : (!fir.box<!fir.array<?x?x!fir.char<1,?>>>, !fir.slice<2>) -> !fir.box
70 // Test setting a new shape on a fir.box
78 func.func private @bar_rebox_test3(!fir.box<!fir.array<?x?x?xf32>>)
81 func.func @test_rebox_3(%arg0: !fir.box<!fir.array<?xf32>>) {
103 …%2 = fir.rebox %arg0(%1) : (!fir.box<!fir.array<?xf32>>, !fir.shapeshift<3>) -> !fir.box<!fir.arra…
[all …]
H A Dfir-ops.fir177 %1 = fir.embox %0 : (!fir.ref<i32>) -> !fir.box<i32>
617 // CHECK: fir.absent !fir.box<!fir.array<?xf32>>
618 %0 = fir.absent !fir.box<!fir.array<?xf32>>
716 …%2 = fir.rebox %arg0(%1) [%0] : (!fir.box<!fir.array<?xf32>>, !fir.shift<1>, !fir.slice<1>) -> !fi…
718 …// CHECK: fir.rebox %{{.*}}(%{{.*}}) : (!fir.box<!fir.array<?xf32>>, !fir.shape<2>) -> !fir.box<!f…
719 …%4 = fir.rebox %2(%3) : (!fir.box<!fir.array<?xf32>>, !fir.shape<2>) -> !fir.box<!fir.array<?x?xf3…
734 …%2 = fir.rebox %arg0 [%1] : (!fir.box<!fir.array<?x!fir.char<1,20>>>, !fir.slice<1>) -> !fir.box<!…
773 …: !fir.ref<tuple<!fir.ref<!fir.box<!fir.ptr<f32>>>, !fir.ref<!fir.box<!fir.heap<f32>>>>>, %[[ARG1:…
774 …e<!fir.ref<!fir.box<!fir.ptr<f32>>>, !fir.ref<!fir.box<!fir.heap<f32>>>>>, %arg1: !fir.ref<!fir.bo…
778 …ir.ref<tuple<!fir.ref<!fir.box<!fir.ptr<f32>>>, !fir.ref<!fir.box<!fir.heap<f32>>>>>, i32) -> !fir…
[all …]
H A Drebox-susbtring.fir7 // length (like c(:)(2:*) where c is a fir.box array with constant length).
11 func.func @char_section(%arg0: !fir.box<!fir.array<?x!fir.char<1,20>>>) {
16 …%0:3 = fir.box_dims %arg0, %c0 : (!fir.box<!fir.array<?x!fir.char<1,20>>>, index) -> (index, index…
33 …%2 = fir.rebox %arg0 [%1] : (!fir.box<!fir.array<?x!fir.char<1,20>>>, !fir.slice<1>) -> !fir.box<!…
34 fir.call @bar(%2) : (!fir.box<!fir.array<?x!fir.char<1,?>>>) -> ()
38 …ection like x(3:60:9)%c(2:8) with both a triplet, a component and a substring where x is a fir.box.
42 func.func private @bar(!fir.box<!fir.array<?x!fir.char<1,?>>>)
43 func.func @foo(%arg0: !fir.box<!fir.array<?x!fir.type<t{i:i32,c:!fir.char<1,10>}>>>) {
67 …%2 = fir.rebox %arg0 [%1] : (!fir.box<!fir.array<?x!fir.type<t{i:i32,c:!fir.char<1,10>}>>>, !fir.s…
68 fir.call @bar(%2) : (!fir.box<!fir.array<?x!fir.char<1,?>>>) -> ()
H A Dembox.fir6 func.func @_QPtest_callee(%arg0: !fir.box<!fir.array<?xi32>>) {
27 … [%2] : (!fir.ref<!fir.array<20xi32>>, !fir.shape<1>, !fir.slice<1>) -> !fir.box<!fir.array<?xi32>>
28 fir.call @_QPtest_callee(%3) : (!fir.box<!fir.array<?xi32>>) -> ()
33 func.func @_QPtest_dt_callee(%arg0: !fir.box<!fir.array<?xi32>>) {
60 fir.call @_QPtest_dt_callee(%5) : (!fir.box<!fir.array<?xi32>>) -> ()
64 func.func private @takesRank2CharBox(!fir.box<!fir.array<?x?x!fir.char<1,?>>>)
82 fir.call @takesRank2CharBox(%2) : (!fir.box<!fir.array<?x?x!fir.char<1,?>>>) -> ()
86 func.func private @do_something(!fir.box<!fir.array<?xf32>>) -> ()
100 // CHECK: %[[box:.*]] = insertvalue { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }
102 … (!fir.ref<!fir.array<40x?xf32>>, !fir.shapeshift<2>, !fir.slice<2>) -> !fir.box<!fir.array<?xf32>>
[all …]
H A Dinvalid.fir44 …%1 = fir.rebox %arg0(%0) : (!fir.box<!fir.array<*:f32>>, !fir.shape<1>) -> !fir.box<!fir.array<?xf…
52 %0 = fir.rebox %arg0 : (!fir.box<!fir.array<?xf32>>) -> !fir.box<!fir.array<*:f32>>
63 …%1 = fir.rebox %arg0 [%0] : (!fir.box<!fir.array<?x?xf32>>, !fir.slice<1>) -> !fir.box<!fir.array<…
75 …%2 = fir.rebox %arg0(%1) [%0] : (!fir.box<!fir.array<?xf32>>, !fir.shift<2>, !fir.slice<1>) -> !fi…
87 …%2 = fir.rebox %arg0(%1) [%0] : (!fir.box<!fir.array<?xf32>>, !fir.shape<1>, !fir.slice<1>) -> !fi…
99 …%1 = fir.rebox %arg0 [%0] : (!fir.box<!fir.array<?x?xf32>>, !fir.slice<2>) -> !fir.box<!fir.array<…
109 …%1 = fir.rebox %arg0(%0) : (!fir.box<!fir.array<?xf32>>, !fir.shift<2>) -> !fir.box<!fir.array<?x?…
119 …%1 = fir.rebox %arg0(%0) : (!fir.box<!fir.array<?xf32>>, !fir.shape<2>) -> !fir.box<!fir.array<?xf…
129 …%1 = fir.rebox %arg0(%0) : (!fir.box<!fir.array<?x?xf32>>, !fir.shape<1>) -> !fir.box<!fir.array<?…
308 %1 = fir.embox %0 : (i32) -> !fir.box<i32>
[all …]
/llvm-project-15.0.7/libcxx/test/libcxx/ranges/range.adaptors/range.copy.wrap/
H A Dctor.default.pass.cpp40 Box<CopyConstructible> box; in test() local
41 assert(box.__has_value()); in test()
42 assert((*box).value == CopyConstructible().value); in test()
47 Box<Copyable> box; in test() local
48 assert(box.__has_value()); in test()
49 assert((*box).value == Copyable().value); in test()
54 Box<NothrowCopyConstructible> box; in test() local
55 assert(box.__has_value()); in test()
56 assert((*box).value == NothrowCopyConstructible().value); in test()
/llvm-project-15.0.7/flang/include/flang/Optimizer/Builder/
H A DMutableBox.h57 const fir::MutableBoxValue &box,
67 const fir::MutableBoxValue &box,
77 const fir::MutableBoxValue &box);
108 const fir::MutableBoxValue &box, mlir::ValueRange shape,
120 const fir::MutableBoxValue &box);
123 const fir::MutableBoxValue &box,
129 const fir::MutableBoxValue &box);
135 const fir::MutableBoxValue &box);
143 const fir::MutableBoxValue &box,
151 const fir::MutableBoxValue &box);
[all …]
H A DBoxValue.h458 ExtendedValue() : box{UnboxedValue{}} {} in ExtendedValue()
461 constexpr ExtendedValue(A &&a) : box{std::forward<A>(a)} { in ExtendedValue()
477 return std::get_if<A>(&box); in getBoxOf()
489 return match([](const fir::UnboxedValue &box) -> unsigned { return 0; }, in rank()
490 [](const fir::CharBoxValue &box) -> unsigned { return 0; }, in rank()
492 [](const auto &box) -> unsigned { return box.rank(); }); in rank()
504 const VT &matchee() const { return box; } in matchee()
507 VT box;
513 [](const fir::UnboxedValue &box) { return box ? true : false; }, in isUnboxedValue()
521 [](const fir::MutableBoxValue &box) { return box.getBaseTy(); }, in getBaseTypeOf()
[all …]
/llvm-project-15.0.7/flang/include/flang/Lower/
H A DSymbolMap.h84 SymbolBox() : box{None{}} {} in SymbolBox()
86 SymbolBox(const A &x) : box{x} {} in SymbolBox()
97 [](const auto &box) -> fir::ExtendedValue { return box; }); in toExtendedValue()
154 return match([&](const FullDim &box) { return box.getLBounds()[dim]; }, in getLBound()
155 [&](const CharFullDim &box) { return box.getLBounds()[dim]; }, in getLBound()
156 [&](const Box &box) { return box.getLBounds()[dim]; }, in getLBound()
163 if (auto *x = std::get_if<ON>(&box))
168 const VT &matchee() const { return box; } in matchee()
177 VT box;
275 makeSym(sym, box, force);
[all …]
H A DBoxAnalyzer.h275 BoxAnalyzer() : box{None{}} {} in BoxAnalyzer()
277 operator bool() const { return !std::holds_alternative<None>(box); }
432 box = StaticArrayDynamicChar(sym, std::move(lbounds), in analyze()
435 box = DynamicArrayDynamicChar(sym, std::move(bounds)); in analyze()
443 box = DynamicArray(sym, std::move(bounds)); in analyze()
450 box = ScalarStaticChar(sym, *len); in analyze()
452 box = ScalarDynamicChar(sym, *var); in analyze()
454 box = ScalarDynamicChar(sym); in analyze()
459 box = ScalarSym(sym); in analyze()
462 const VT &matchee() const { return box; } in matchee()
[all …]
/llvm-project-15.0.7/flang/lib/Lower/
H A DAllocatable.cpp123 box.isPointer() in genRuntimeSetBounds()
143 box.isPointer() in genRuntimeInitCharacter()
157 int rank = box.rank(); in genRuntimeInitCharacter()
171 box.isPointer() in genRuntimeAllocate()
192 box.isPointer() in genRuntimeDeallocate()
379 if (box.isPointer()) { in genSimpleAllocation()
385 builder, loc, box.getBoxTy(), box.nonDeferredLenParams()); in genSimpleAllocation()
396 genSetType(alloc, box); in genSimpleAllocation()
457 if (box.isCharacter()) in genSetDeferredLengthParameters()
460 if (box.isDerived()) in genSetDeferredLengthParameters()
[all …]
/llvm-project-15.0.7/clang/test/CodeGenCXX/
H A Dvirtual-destructor-synthesis.cpp3 struct box { struct
4 virtual ~box();
7 struct pile_box : public box {
8 pile_box(box *);
11 pile_box::pile_box(box *pp) in pile_box()
/llvm-project-15.0.7/flang/unittests/Optimizer/Builder/Runtime/
H A DDerivedTest.cpp17 mlir::Value box = firBuilder->create<fir::UndefOp>(loc, seqTy); in TEST_F() local
18 fir::runtime::genDerivedTypeInitialize(*firBuilder, loc, box); in TEST_F()
19 checkCallOpFromResultBox(box, "_FortranAInitialize", 1); in TEST_F()
26 mlir::Value box = firBuilder->create<fir::UndefOp>(loc, seqTy); in TEST_F() local
27 fir::runtime::genDerivedTypeDestroy(*firBuilder, loc, box); in TEST_F()
28 checkCallOpFromResultBox(box, "_FortranADestroy", 1, /*addLocArg=*/false); in TEST_F()
/llvm-project-15.0.7/polly/www/video-js/
H A Dvideo-js.css24 .video-js-box.vjs-fullscreen video.video-js,
26 .video-js-box.vjs-fullscreen img.vjs-poster { z-index: 1001; }
27 .video-js-box.vjs-fullscreen .vjs-spinner { z-index: 1001; }
28 .video-js-box.vjs-fullscreen .vjs-controls { z-index: 1003; }
29 .video-js-box.vjs-fullscreen .vjs-big-play-button { z-index: 1004; }
30 .video-js-box.vjs-fullscreen .vjs-subtitles { z-index: 1004; }
46 .video-js-box .vjs-controls {
49 left: 0; right: 0; /* 100% width of video-js-box */
72box-shadow: 1px 1px 2px #000; -webkit-box-shadow: 1px 1px 2px #000; -moz-box-shadow: 1px 1px 2px #…
207box-shadow: 4px 4px 8px #000; -webkit-box-shadow: 4px 4px 8px #000; -moz-box-shadow: 4px 4px 8px #…
[all …]

123456