forked from OSchip/llvm-project
21 lines
687 B
LLVM
21 lines
687 B
LLVM
; RUN: llc -march=hexagon < %s | FileCheck %s
|
|
|
|
; Check that we scalarize the comparison. This testcase used to loop forever
|
|
; due to the repeated split-widen operations in legalizing SETCC.
|
|
|
|
; CHECK: fred:
|
|
; CHECK: sfcmp.gt
|
|
; CHECK: vinsert
|
|
|
|
define <32 x i32> @fred(<32 x i32> %a0, <32 x i32> %a1) #0 {
|
|
b0:
|
|
%v0 = bitcast <32 x i32> %a0 to <32 x float>
|
|
%v1 = bitcast <32 x i32> %a1 to <32 x float>
|
|
%v2 = fcmp ogt <32 x float> %v0, %v1
|
|
%v3 = select <32 x i1> %v2, <32 x float> zeroinitializer, <32 x float> %v0
|
|
%v4 = bitcast <32 x float> %v3 to <32 x i32>
|
|
ret <32 x i32> %v4
|
|
}
|
|
|
|
attributes #0 = { nounwind "target-cpu"="hexagonv66" "target-features"="+hvxv66,+hvx-length128b" }
|