48 lines · plain
1; RUN: llc -mtriple=hexagon -O0 < %s | FileCheck %s2; r2 = round(r1:0):sat3; r3 = cmpyiwh(r1:0, r2):<<1:rnd:sat4; r0 = cmpyiwh(r1:0, r2*):<<1:rnd:sat5 6; CHECK: round(r{{[0-9]*}}:{{[0-9]*}}):sat7; CHECK: cmpyiwh(r{{[0-9]*}}:{{[0-9]*}},r{{[0-9]*}}):<<1:rnd:sat8; CHECK: cmpyrwh(r{{[0-9]*}}:{{[0-9]*}},r{{[0-9]*}}*):<<1:rnd:sat9; CHECK: cmpyiwh(r{{[0-9]*}}:{{[0-9]*}},r{{[0-9]*}}*):<<1:rnd:sat10 11target triple = "hexagon"12 13@g0 = global i32 0, align 414@g1 = global i32 0, align 415@g2 = global i32 0, align 416 17; Function Attrs: nounwind18define i32 @f0() #0 {19b0:20 %v0 = alloca i32, align 421 %v1 = alloca i32, align 422 store i32 0, ptr %v023 store i32 0, ptr %v1, align 424 %v2 = call i32 @llvm.hexagon.A2.roundsat(i64 1)25 store i32 %v2, ptr @g1, align 426 %v3 = call i32 @llvm.hexagon.M4.cmpyi.wh(i64 -2147483648, i32 -2147483648)27 store i32 %v3, ptr @g0, align 428 %v4 = call i32 @llvm.hexagon.M4.cmpyr.whc(i64 2147483647, i32 2147483647)29 store i32 %v4, ptr @g2, align 430 %v5 = call i32 @llvm.hexagon.M4.cmpyi.whc(i64 -2147483648, i32 -2147483648)31 ret i32 %v532}33 34; Function Attrs: nounwind readnone35declare i32 @llvm.hexagon.A2.roundsat(i64) #136 37; Function Attrs: nounwind readnone38declare i32 @llvm.hexagon.M4.cmpyi.wh(i64, i32) #139 40; Function Attrs: nounwind readnone41declare i32 @llvm.hexagon.M4.cmpyr.whc(i64, i32) #142 43; Function Attrs: nounwind readnone44declare i32 @llvm.hexagon.M4.cmpyi.whc(i64, i32) #145 46attributes #0 = { nounwind "target-cpu"="hexagonv55" }47attributes #1 = { nounwind readnone }48