; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --remove_checks
; RUN: llc -march=colossus -colossus-coissue=false %s -mattr=+ipu1 -o - | FileCheck %s
; RUN: llc -march=colossus -colossus-coissue=false %s -mattr=+ipu2 -o - | FileCheck %s


define <4 x float> @v4f32_const_init_1() {
; CHECK-LABEL: v4f32_const_init_1:
; CHECK:       # %bb.0:
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float undef, float undef, float undef, float undef>
}

define <4 x float> @v4f32_const_init_2() {
; CHECK-LABEL: v4f32_const_init_2:
; CHECK:       # %bb.0:
; CHECK-NEXT:    not64 $a0:1, $a14:15
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float undef, float 0xFFFFFFFFE0000000, float undef, float undef>
}

define <4 x float> @v4f32_const_init_3() {
; CHECK-LABEL: v4f32_const_init_3:
; CHECK:       # %bb.0:
; CHECK-NEXT:    mov $a0, $a15
; CHECK-NEXT:    setzi $a1, 699050
; CHECK-NEXT:    or $a1, $a1, 2862612480
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float undef, float 0xBD55555540000000, float undef, float undef>
}

define <4 x float> @v4f32_const_init_4() {
; CHECK-LABEL: v4f32_const_init_4:
; CHECK:       # %bb.0:
; CHECK-NEXT:    not64 $a0:1, $a14:15
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xFFFFFFFFE0000000, float undef, float undef, float undef>
}

define <4 x float> @v4f32_const_init_5() {
; CHECK-LABEL: v4f32_const_init_5:
; CHECK:       # %bb.0:
; CHECK-NEXT:    not64 $a0:1, $a14:15
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float undef, float undef>
}

define <4 x float> @v4f32_const_init_6() {
; CHECK-LABEL: v4f32_const_init_6:
; CHECK:       # %bb.0:
; CHECK-NEXT:    not $a0, $a15
; CHECK-NEXT:    setzi $a1, 699050
; CHECK-NEXT:    or $a1, $a1, 2862612480
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xFFFFFFFFE0000000, float 0xBD55555540000000, float undef, float undef>
}

define <4 x float> @v4f32_const_init_7() {
; CHECK-LABEL: v4f32_const_init_7:
; CHECK:       # %bb.0:
; CHECK-NEXT:    setzi $a0, 699050
; CHECK-NEXT:    or $a0, $a0, 2862612480
; CHECK-NEXT:    mov $a1, $a15
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xBD55555540000000, float undef, float undef, float undef>
}

define <4 x float> @v4f32_const_init_8() {
; CHECK-LABEL: v4f32_const_init_8:
; CHECK:       # %bb.0:
; CHECK-NEXT:    setzi $a0, 699050
; CHECK-NEXT:    or $a0, $a0, 2862612480
; CHECK-NEXT:    not $a1, $a15
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xBD55555540000000, float 0xFFFFFFFFE0000000, float undef, float undef>
}

define <4 x float> @v4f32_const_init_9() {
; CHECK-LABEL: v4f32_const_init_9:
; CHECK:       # %bb.0:
; CHECK-NEXT:    setzi $a0, 699050
; CHECK-NEXT:    or $a0, $a0, 2862612480
; CHECK-NEXT:    mov $a1, $a0
; CHECK-NEXT:    br $m10
	  ret <4 x float> <float 0xBD55555540000000, float 0xBD55555540000000, float undef, float undef>
}
