Home | History | Annotate | Download | only in EarlyCSE
      1 ; RUN: opt < %s -S -early-cse | FileCheck %s
      2 
      3 ; CHECK: @test1
      4 define void @test1(float %A, float %B, float* %PA, float* %PB) {
      5   ; CHECK-NEXT: fadd
      6   ; CHECK-NEXT: store
      7   ; CHECK-NEXT: store
      8   ; CHECK-NEXT: ret
      9   %C = fadd float %A, %B
     10   store float %C, float* %PA
     11   %D = fadd float %B, %A
     12   store float %D, float* %PB
     13   ret void
     14 }
     15 
     16 ; CHECK: @test2
     17 define void @test2(float %A, float %B, i1* %PA, i1* %PB) {
     18   ; CHECK-NEXT: fcmp
     19   ; CHECK-NEXT: store
     20   ; CHECK-NEXT: store
     21   ; CHECK-NEXT: ret
     22   %C = fcmp oeq float %A, %B
     23   store i1 %C, i1* %PA
     24   %D = fcmp oeq float %B, %A
     25   store i1 %D, i1* %PB
     26   ret void
     27 }
     28 
     29 ; CHECK: @test3
     30 define void @test3(float %A, float %B, i1* %PA, i1* %PB) {
     31   ; CHECK-NEXT: fcmp
     32   ; CHECK-NEXT: store
     33   ; CHECK-NEXT: store
     34   ; CHECK-NEXT: ret
     35   %C = fcmp uge float %A, %B
     36   store i1 %C, i1* %PA
     37   %D = fcmp ule float %B, %A
     38   store i1 %D, i1* %PB
     39   ret void
     40 }
     41 
     42 ; CHECK: @test4
     43 define void @test4(i32 %A, i32 %B, i1* %PA, i1* %PB) {
     44   ; CHECK-NEXT: icmp
     45   ; CHECK-NEXT: store
     46   ; CHECK-NEXT: store
     47   ; CHECK-NEXT: ret
     48   %C = icmp eq i32 %A, %B
     49   store i1 %C, i1* %PA
     50   %D = icmp eq i32 %B, %A
     51   store i1 %D, i1* %PB
     52   ret void
     53 }
     54 
     55 ; CHECK: @test5
     56 define void @test5(i32 %A, i32 %B, i1* %PA, i1* %PB) {
     57   ; CHECK-NEXT: icmp
     58   ; CHECK-NEXT: store
     59   ; CHECK-NEXT: store
     60   ; CHECK-NEXT: ret
     61   %C = icmp sgt i32 %A, %B
     62   store i1 %C, i1* %PA
     63   %D = icmp slt i32 %B, %A
     64   store i1 %D, i1* %PB
     65   ret void
     66 }
     67