Add tests for E-needstest issues
Translate SIMD construction as `insertelement`s and a single store.

This almost completely avoids GEPi's and pointer manipulation,
postponing it until the end with one big write of the whole vector. This
leads to a small speed-up in compilation, and makes it easier for LLVM
to work with the values, e.g. with `--opt-level=0`,

    pub fn foo() -> f32x4 {
        f32x4(0.,0.,0.,0.)
    }

was previously compiled to

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      %sret_slot = alloca <4 x float>
      %0 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 0
      store float 0.000000e+00, float* %0
      %1 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 1
      store float 0.000000e+00, float* %1
      %2 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 2
      store float 0.000000e+00, float* %2
      %3 = getelementptr inbounds <4 x float>* %sret_slot, i32 0, i32 3
      store float 0.000000e+00, float* %3
      %4 = load <4 x float>* %sret_slot
      ret <4 x float> %4
    }

but now becomes

    define <4 x float> @_ZN3foo20h74913e8b13d89666eaaE() unnamed_addr #0 {
    entry-block:
      ret <4 x float> zeroinitializer
    }
rustc: Support stability attributes on crates

This commit adds support for linting `extern crate` statements for stability
attributes attached to the crate itself. This is likely to be the mechanism used
to deny access to experimental crates that are part of the standard
distribution.

cc #18585
std::error: fix stray doc comment
test: correct spelling error & inverted match.
librustc_back: Fix triple for linux armhf.
librustc: Call return_type only for functions.
Make trans::adt know that some structs are unsized
Test
debuginfo: Make LLDB test make targets dependent on lldb python scripts.
debuginfo: Add timeout before running executable in LLDB tests.

This should help with a potential race condition.
rename deprecated non_uppercase_statics to non_upper_case_globals
Rename misspelled module reference.
Add missing dragonfly module.
debuginfo: Add a timeout for LLDB tests.

Fixes #18649.
Fix example in HashMap::new() docs
rustc: Add some more checks to the stability lint

This catches uses of unstable traits in

```
trait Foo: UnstableTrait { }
```

and

```
impl UnstableTrait for Foo { }
```
fix typo in librustc target spec
Make x86_64-unknown-linux-gnu.json true to its name
Restructure parsing of paths, which is quite tortured