; RUN: llc < %s -mtriple=s390x-linux-gnu -o - | FileCheck %s
; This test verifies that passing the "-vector" feature disables *any*
; use of vector instructions, even if +vector-enhancements-1 if given.
; Function Attrs: noinline nounwind optnone
define dso_local signext i32 @foo(ptr %0, ptr %1) #0 {
; CHECK-LABEL: @foo
; CHECK-NOT: vl
; CHECK-NOT: vst
; CHECK: br %r14
entry:
%arg1.addr = alloca fp128, align 8
%arg2.addr = alloca fp128, align 8
%indirect-arg-temp = alloca fp128, align 8
%indirect-arg-temp1 = alloca fp128, align 8
%arg1 = load fp128, ptr %0, align 8
%arg2 = load fp128, ptr %1, align 8
store fp128 %arg1, ptr %arg1.addr, align 8
store fp128 %arg2, ptr %arg2.addr, align 8
%2 = load fp128, ptr %arg1.addr, align 8
%3 = load fp128, ptr %arg2.addr, align 8
store fp128 %2, ptr %indirect-arg-temp, align 8
store fp128 %3, ptr %indirect-arg-temp1, align 8
%call = call signext i32 @bar(i32 signext 2, ptr %indirect-arg-temp, ptr %indirect-arg-temp1)
ret i32 %call
}
declare dso_local signext i32 @bar(i32 signext, ptr, ptr) #1
attributes #0 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="z14" "target-features"="+transactional-execution,+vector-enhancements-1,-vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="z14" "target-features"="+transactional-execution,+vector-enhancements-1,-vector" "unsafe-fp-math"="false" "use-soft-float"="false" }