[PowerPC] Recommit r314244 with refactoring and off by default
[llvm-core.git] / test / CodeGen / AMDGPU / fmax_legacy.f64.ll
blob083346e9d1cbd356925706ab87d95f5ecbe5ddf7
1 ; RUN: llc -march=amdgcn < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
2 ; Make sure we don't try to form FMAX_LEGACY nodes with f64
4 declare i32 @llvm.amdgcn.workitem.id.x() #1
6 ; FUNC-LABEL: @test_fmax_legacy_uge_f64
7 define amdgpu_kernel void @test_fmax_legacy_uge_f64(double addrspace(1)* %out, double addrspace(1)* %in) #0 {
8   %tid = call i32 @llvm.amdgcn.workitem.id.x() #1
9   %gep.0 = getelementptr double, double addrspace(1)* %in, i32 %tid
10   %gep.1 = getelementptr double, double addrspace(1)* %gep.0, i32 1
12   %a = load double, double addrspace(1)* %gep.0, align 8
13   %b = load double, double addrspace(1)* %gep.1, align 8
15   %cmp = fcmp uge double %a, %b
16   %val = select i1 %cmp, double %a, double %b
17   store double %val, double addrspace(1)* %out, align 8
18   ret void
21 ; FUNC-LABEL: @test_fmax_legacy_oge_f64
22 define amdgpu_kernel void @test_fmax_legacy_oge_f64(double addrspace(1)* %out, double addrspace(1)* %in) #0 {
23   %tid = call i32 @llvm.amdgcn.workitem.id.x() #1
24   %gep.0 = getelementptr double, double addrspace(1)* %in, i32 %tid
25   %gep.1 = getelementptr double, double addrspace(1)* %gep.0, i32 1
27   %a = load double, double addrspace(1)* %gep.0, align 8
28   %b = load double, double addrspace(1)* %gep.1, align 8
30   %cmp = fcmp oge double %a, %b
31   %val = select i1 %cmp, double %a, double %b
32   store double %val, double addrspace(1)* %out, align 8
33   ret void
36 ; FUNC-LABEL: @test_fmax_legacy_ugt_f64
37 define amdgpu_kernel void @test_fmax_legacy_ugt_f64(double addrspace(1)* %out, double addrspace(1)* %in) #0 {
38   %tid = call i32 @llvm.amdgcn.workitem.id.x() #1
39   %gep.0 = getelementptr double, double addrspace(1)* %in, i32 %tid
40   %gep.1 = getelementptr double, double addrspace(1)* %gep.0, i32 1
42   %a = load double, double addrspace(1)* %gep.0, align 8
43   %b = load double, double addrspace(1)* %gep.1, align 8
45   %cmp = fcmp ugt double %a, %b
46   %val = select i1 %cmp, double %a, double %b
47   store double %val, double addrspace(1)* %out, align 8
48   ret void
51 ; FUNC-LABEL: @test_fmax_legacy_ogt_f64
52 define amdgpu_kernel void @test_fmax_legacy_ogt_f64(double addrspace(1)* %out, double addrspace(1)* %in) #0 {
53   %tid = call i32 @llvm.amdgcn.workitem.id.x() #1
54   %gep.0 = getelementptr double, double addrspace(1)* %in, i32 %tid
55   %gep.1 = getelementptr double, double addrspace(1)* %gep.0, i32 1
57   %a = load double, double addrspace(1)* %gep.0, align 8
58   %b = load double, double addrspace(1)* %gep.1, align 8
60   %cmp = fcmp ogt double %a, %b
61   %val = select i1 %cmp, double %a, double %b
62   store double %val, double addrspace(1)* %out, align 8
63   ret void
66 attributes #0 = { nounwind }
67 attributes #1 = { nounwind readnone }