; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s
; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel -global-isel-abort=1 | FileCheck %s --check-prefix=GISEL


define i1 @test_redor_v1i1(<1 x i1> %a) {
; CHECK-LABEL: test_redor_v1i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    and w0, w0, #0x1
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v1i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    and w0, w0, #0x1
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v1i1(<1 x i1> %a)
  ret i1 %or_result
}

define i1 @test_redor_v2i1(<2 x i1> %a) {
; CHECK-LABEL: test_redor_v2i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    shl v0.2s, v0.2s, #31
; CHECK-NEXT:    cmlt v0.2s, v0.2s, #0
; CHECK-NEXT:    umaxp v0.2s, v0.2s, v0.2s
; CHECK-NEXT:    fmov w8, s0
; CHECK-NEXT:    and w0, w8, #0x1
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v2i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    mov s1, v0.s[1]
; GISEL-NEXT:    fmov w8, s0
; GISEL-NEXT:    fmov w9, s1
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    and w0, w8, #0x1
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v2i1(<2 x i1> %a)
  ret i1 %or_result
}

define i1 @test_redor_v4i1(<4 x i1> %a) {
; CHECK-LABEL: test_redor_v4i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    shl v0.4h, v0.4h, #15
; CHECK-NEXT:    cmlt v0.4h, v0.4h, #0
; CHECK-NEXT:    umaxv h0, v0.4h
; CHECK-NEXT:    fmov w8, s0
; CHECK-NEXT:    and w0, w8, #0x1
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v4i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    umov w8, v0.h[0]
; GISEL-NEXT:    umov w9, v0.h[1]
; GISEL-NEXT:    umov w10, v0.h[2]
; GISEL-NEXT:    umov w11, v0.h[3]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    and w0, w8, #0x1
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v4i1(<4 x i1> %a)
  ret i1 %or_result
}

define i1 @test_redor_v8i1(<8 x i1> %a) {
; CHECK-LABEL: test_redor_v8i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    shl v0.8b, v0.8b, #7
; CHECK-NEXT:    cmlt v0.8b, v0.8b, #0
; CHECK-NEXT:    umaxv b0, v0.8b
; CHECK-NEXT:    fmov w8, s0
; CHECK-NEXT:    and w0, w8, #0x1
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v8i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    and w0, w8, #0x1
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v8i1(<8 x i1> %a)
  ret i1 %or_result
}

define i1 @test_redor_v16i1(<16 x i1> %a) {
; CHECK-LABEL: test_redor_v16i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    shl v0.16b, v0.16b, #7
; CHECK-NEXT:    cmlt v0.16b, v0.16b, #0
; CHECK-NEXT:    umaxv b0, v0.16b
; CHECK-NEXT:    fmov w8, s0
; CHECK-NEXT:    and w0, w8, #0x1
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v16i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    umov w16, v0.b[8]
; GISEL-NEXT:    umov w17, v0.b[9]
; GISEL-NEXT:    umov w18, v0.b[10]
; GISEL-NEXT:    umov w0, v0.b[11]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    umov w1, v0.b[12]
; GISEL-NEXT:    umov w2, v0.b[13]
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    umov w3, v0.b[14]
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    umov w4, v0.b[15]
; GISEL-NEXT:    orr w12, w16, w17
; GISEL-NEXT:    orr w13, w18, w0
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w14, w1, w2
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w15, w3, w4
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    and w0, w8, #0x1
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v16i1(<16 x i1> %a)
  ret i1 %or_result
}

define <16 x i1> @test_redor_ins_v16i1(<16 x i1> %a) {
; CHECK-LABEL: test_redor_ins_v16i1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    shl v0.16b, v0.16b, #7
; CHECK-NEXT:    cmlt v0.16b, v0.16b, #0
; CHECK-NEXT:    umaxv b0, v0.16b
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_ins_v16i1:
; GISEL:       // %bb.0:
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    umov w16, v0.b[8]
; GISEL-NEXT:    umov w17, v0.b[9]
; GISEL-NEXT:    umov w18, v0.b[10]
; GISEL-NEXT:    umov w0, v0.b[11]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    umov w1, v0.b[12]
; GISEL-NEXT:    umov w2, v0.b[13]
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    umov w3, v0.b[14]
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    umov w4, v0.b[15]
; GISEL-NEXT:    orr w12, w16, w17
; GISEL-NEXT:    orr w13, w18, w0
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w14, w1, w2
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w15, w3, w4
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    fmov s0, w8
; GISEL-NEXT:    ret
  %or_result = call i1 @llvm.vector.reduce.or.v16i1(<16 x i1> %a)
  %ins = insertelement <16 x i1> poison, i1 %or_result, i64 0
  ret <16 x i1> %ins
}

define i8 @test_redor_v1i8(<1 x i8> %a) {
; CHECK-LABEL: test_redor_v1i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q0
; CHECK-NEXT:    umov w0, v0.b[0]
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v1i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    fmov x0, d0
; GISEL-NEXT:    // kill: def $w0 killed $w0 killed $x0
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v1i8(<1 x i8> %a)
  ret i8 %or_result
}

define i8 @test_redor_v3i8(<3 x i8> %a) {
; CHECK-LABEL: test_redor_v3i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    movi v0.2d, #0000000000000000
; CHECK-NEXT:    mov v0.h[0], w0
; CHECK-NEXT:    mov v0.h[1], w1
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    mov v0.h[2], w2
; CHECK-NEXT:    fmov x9, d0
; CHECK-NEXT:    lsr x10, x9, #32
; CHECK-NEXT:    lsr x9, x9, #16
; CHECK-NEXT:    orr w8, w8, w10
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v3i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    orr w8, w0, w1
; GISEL-NEXT:    orr w0, w8, w2
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v3i8(<3 x i8> %a)
  ret i8 %or_result
}

define i8 @test_redor_v4i8(<4 x i8> %a) {
; CHECK-LABEL: test_redor_v4i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    lsr x9, x8, #16
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v4i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    umov w8, v0.h[0]
; GISEL-NEXT:    umov w9, v0.h[1]
; GISEL-NEXT:    umov w10, v0.h[2]
; GISEL-NEXT:    umov w11, v0.h[3]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v4i8(<4 x i8> %a)
  ret i8 %or_result
}

define i8 @test_redor_v8i8(<8 x i8> %a) {
; CHECK-LABEL: test_redor_v8i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    orr x8, x8, x8, lsr #16
; CHECK-NEXT:    lsr x9, x8, #8
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v8i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v8i8(<8 x i8> %a)
  ret i8 %or_result
}

define i8 @test_redor_v16i8(<16 x i8> %a) {
; CHECK-LABEL: test_redor_v16i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    orr x8, x8, x8, lsr #16
; CHECK-NEXT:    lsr x9, x8, #8
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v16i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v16i8(<16 x i8> %a)
  ret i8 %or_result
}

define i8 @test_redor_v32i8(<32 x i8> %a) {
; CHECK-LABEL: test_redor_v32i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    orr v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    orr x8, x8, x8, lsr #16
; CHECK-NEXT:    lsr x9, x8, #8
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v32i8:
; GISEL:       // %bb.0:
; GISEL-NEXT:    orr v0.16b, v0.16b, v1.16b
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    umov w8, v0.b[0]
; GISEL-NEXT:    umov w9, v0.b[1]
; GISEL-NEXT:    umov w10, v0.b[2]
; GISEL-NEXT:    umov w11, v0.b[3]
; GISEL-NEXT:    umov w12, v0.b[4]
; GISEL-NEXT:    umov w13, v0.b[5]
; GISEL-NEXT:    umov w14, v0.b[6]
; GISEL-NEXT:    umov w15, v0.b[7]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w10, w12, w13
; GISEL-NEXT:    orr w11, w14, w15
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i8 @llvm.vector.reduce.or.v32i8(<32 x i8> %a)
  ret i8 %or_result
}

define i16 @test_redor_v4i16(<4 x i16> %a) {
; CHECK-LABEL: test_redor_v4i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    lsr x9, x8, #16
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v4i16:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    umov w8, v0.h[0]
; GISEL-NEXT:    umov w9, v0.h[1]
; GISEL-NEXT:    umov w10, v0.h[2]
; GISEL-NEXT:    umov w11, v0.h[3]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i16 @llvm.vector.reduce.or.v4i16(<4 x i16> %a)
  ret i16 %or_result
}

define i16 @test_redor_v8i16(<8 x i16> %a) {
; CHECK-LABEL: test_redor_v8i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    lsr x9, x8, #16
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v8i16:
; GISEL:       // %bb.0:
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    umov w8, v0.h[0]
; GISEL-NEXT:    umov w9, v0.h[1]
; GISEL-NEXT:    umov w10, v0.h[2]
; GISEL-NEXT:    umov w11, v0.h[3]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i16 @llvm.vector.reduce.or.v8i16(<8 x i16> %a)
  ret i16 %or_result
}

define i16 @test_redor_v16i16(<16 x i16> %a) {
; CHECK-LABEL: test_redor_v16i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    orr v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    orr x8, x8, x8, lsr #32
; CHECK-NEXT:    lsr x9, x8, #16
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v16i16:
; GISEL:       // %bb.0:
; GISEL-NEXT:    orr v0.16b, v0.16b, v1.16b
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    umov w8, v0.h[0]
; GISEL-NEXT:    umov w9, v0.h[1]
; GISEL-NEXT:    umov w10, v0.h[2]
; GISEL-NEXT:    umov w11, v0.h[3]
; GISEL-NEXT:    orr w8, w8, w9
; GISEL-NEXT:    orr w9, w10, w11
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i16 @llvm.vector.reduce.or.v16i16(<16 x i16> %a)
  ret i16 %or_result
}

define i32 @test_redor_v2i32(<2 x i32> %a) {
; CHECK-LABEL: test_redor_v2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    lsr x9, x8, #32
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v2i32:
; GISEL:       // %bb.0:
; GISEL-NEXT:    // kill: def $d0 killed $d0 def $q0
; GISEL-NEXT:    mov s1, v0.s[1]
; GISEL-NEXT:    fmov w8, s0
; GISEL-NEXT:    fmov w9, s1
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i32 @llvm.vector.reduce.or.v2i32(<2 x i32> %a)
  ret i32 %or_result
}

define i32 @test_redor_v4i32(<4 x i32> %a) {
; CHECK-LABEL: test_redor_v4i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    lsr x9, x8, #32
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v4i32:
; GISEL:       // %bb.0:
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    mov s1, v0.s[1]
; GISEL-NEXT:    fmov w8, s0
; GISEL-NEXT:    fmov w9, s1
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i32 @llvm.vector.reduce.or.v4i32(<4 x i32> %a)
  ret i32 %or_result
}

define i32 @test_redor_v8i32(<8 x i32> %a) {
; CHECK-LABEL: test_redor_v8i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    orr v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x8, d0
; CHECK-NEXT:    lsr x9, x8, #32
; CHECK-NEXT:    orr w0, w8, w9
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v8i32:
; GISEL:       // %bb.0:
; GISEL-NEXT:    orr v0.16b, v0.16b, v1.16b
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    orr v0.8b, v0.8b, v1.8b
; GISEL-NEXT:    mov s1, v0.s[1]
; GISEL-NEXT:    fmov w8, s0
; GISEL-NEXT:    fmov w9, s1
; GISEL-NEXT:    orr w0, w8, w9
; GISEL-NEXT:    ret
  %or_result = call i32 @llvm.vector.reduce.or.v8i32(<8 x i32> %a)
  ret i32 %or_result
}

define i64 @test_redor_v2i64(<2 x i64> %a) {
; CHECK-LABEL: test_redor_v2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x0, d0
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v2i64:
; GISEL:       // %bb.0:
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    fmov x8, d0
; GISEL-NEXT:    fmov x9, d1
; GISEL-NEXT:    orr x0, x8, x9
; GISEL-NEXT:    ret
  %or_result = call i64 @llvm.vector.reduce.or.v2i64(<2 x i64> %a)
  ret i64 %or_result
}

define i64 @test_redor_v4i64(<4 x i64> %a) {
; CHECK-LABEL: test_redor_v4i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    orr v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ext v1.16b, v0.16b, v0.16b, #8
; CHECK-NEXT:    orr v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    fmov x0, d0
; CHECK-NEXT:    ret
;
; GISEL-LABEL: test_redor_v4i64:
; GISEL:       // %bb.0:
; GISEL-NEXT:    orr v0.16b, v0.16b, v1.16b
; GISEL-NEXT:    mov d1, v0.d[1]
; GISEL-NEXT:    fmov x8, d0
; GISEL-NEXT:    fmov x9, d1
; GISEL-NEXT:    orr x0, x8, x9
; GISEL-NEXT:    ret
  %or_result = call i64 @llvm.vector.reduce.or.v4i64(<4 x i64> %a)
  ret i64 %or_result
}

declare i1 @llvm.vector.reduce.or.v1i1(<1 x i1>)
declare i1 @llvm.vector.reduce.or.v2i1(<2 x i1>)
declare i1 @llvm.vector.reduce.or.v4i1(<4 x i1>)
declare i1 @llvm.vector.reduce.or.v8i1(<8 x i1>)
declare i1 @llvm.vector.reduce.or.v16i1(<16 x i1>)
declare i64 @llvm.vector.reduce.or.v2i64(<2 x i64>)
declare i64 @llvm.vector.reduce.or.v4i64(<4 x i64>)
declare i32 @llvm.vector.reduce.or.v2i32(<2 x i32>)
declare i32 @llvm.vector.reduce.or.v4i32(<4 x i32>)
declare i32 @llvm.vector.reduce.or.v8i32(<8 x i32>)
declare i16 @llvm.vector.reduce.or.v4i16(<4 x i16>)
declare i16 @llvm.vector.reduce.or.v8i16(<8 x i16>)
declare i16 @llvm.vector.reduce.or.v16i16(<16 x i16>)
declare i8 @llvm.vector.reduce.or.v1i8(<1 x i8>)
declare i8 @llvm.vector.reduce.or.v3i8(<3 x i8>)
declare i8 @llvm.vector.reduce.or.v4i8(<4 x i8>)
declare i8 @llvm.vector.reduce.or.v8i8(<8 x i8>)
declare i8 @llvm.vector.reduce.or.v16i8(<16 x i8>)
declare i8 @llvm.vector.reduce.or.v32i8(<32 x i8>)
